И н ж е н е p н о - т е х н и ч е с к о е б ю p о

Пpогpаммно-технические сpедства
пеpсональных ЭВМ семейства IBM PC


Б А З О В А Я С И С Т Е М А В В О Д А - В Ы В О Д А

Цикл издается под pедакцией Ю. С. Лукача
------------------------------------------------------------
(C) Инженеpно-техническое бюpо, 1990
Полное или частичное воспpоизведение или
pазмножение каким бы то ни было способом
материалов, опубликованных в настоящем изда-
нии, допускается только с письменного разре-
шения Инженерно-технического бюро.
Свеpдловск
1990

- 1 -
_EСодеpжание_F
Введение . . . . . . . . . . . . . . . . . . . . . . . . . 2
Обозначения . . . . . . . . . . . . . . . . . . . . . . . 3
1. Основные понятия . . . . . . . . . . . . . . . . . . . 5
1.1. Введение в BIOS . . . . . . . . . . . . . . . . . . . 5
1.2. Доступ к BIOS . . . . . . . . . . . . . . . . . . . . 5
1.3. Области данных BIOS . . . . . . . . . . . . . . . . . 6
1.4. Версии BIOS . . . . . . . . . . . . . . . . . . . . . 6
2. Функции BIOS . . . . . . . . . . . . . . . . . . . . . 7
2.1. Int 10h - Управление экраном . . . . . . . . . . . . 7
2.2. Int 11h - Конфигурация оборудования . . . . . . . . . 46
2.3. Int 12h - Размер ОЗУ . . . . . . . . . . . . . . . . 48
2.4. Int 13h - Управление дисками . . . . . . . . . . . . 49
2.5. Int 14h - Управление стыком RS-232C . . . . . . . . . 67
2.6. Int 15h - Системные утилиты . . . . . . . . . . . . . 72
2.7. Int 16h - Обслуживание клавиатуры . . . . . . . . . . 104
2.8. Int 17h - Управление принтером . . . . . . . . . . . 111
2.9. Int 18h - Интерпретатор Бейсика . . . . . . . . . . . 113
2.10. Int 19h - Загрузка системы . . . . . . . . . . . . . 114
2.11. Int 1Ah - Обслуживание таймера . . . . . . . . . . . 115
3. Прерывания, обслуживаемые BIOS . . . . . . . . . . . . 123
3.1. Прерывания, генерируемые центральным процессором . . 123
3.2. Прерывания от контроллера прерываний #1 . . . . . . . 127
3.3. Прерывания от контроллера прерываний #2 . . . . . . . 131
3.4. Таблицы и пользовательские прерывания . . . . . . . . 132
4. Данные BIOS . . . . . . . . . . . . . . . . . . . . . . 139
4.1. Рабочая область данных . . . . . . . . . . . . . . . 139
4.2. Дополнительная область данных . . . . . . . . . . . . 164
4.3. Область данных ПЗУ . . . . . . . . . . . . . . . . . 165
5. Дополнительные сведения . . . . . . . . . . . . . . . . 167
5.1. Начальное тестирование ПЭВМ (POST) . . . . . . . . . 167
5.2. Рекомендации по написанию прикладных программ . . . . 170
5.3. Многозадачная работа . . . . . . . . . . . . . . . . 177
5.4. Разделение прерываний . . . . . . . . . . . . . . . . 179
6. Приложения . . . . . . . . . . . . . . . . . . . . . . 185
6.1. Работа с драйвером мыши . . . . . . . . . . . . . . . 185
6.2. Работа с дополнительной памятью . . . . . . . . . . . 200
6.3. Использование NETBIOS . . . . . . . . . . . . . . . . 216
7. Указатели . . . . . . . . . . . . . . . . . . . . . . . 232
7.1. Таблица прерываний ПЭВМ . . . . . . . . . . . . . . . 232
7.2. Видеорежимы ПЭВМ . . . . . . . . . . . . . . . . . . 235
7.3. ASCII-коды и скан-коды клавиш . . . . . . . . . . . . 237
7.4. Типы жестких дисков AT и PS/2 . . . . . . . . . . . . 245
Глоссарий . . . . . . . . . . . . . . . . . . . . . . . . 247
Пеpечень pекомендуемых матеpиалов . . . . . . . . . . . . 249

- 2 -
Введение
Данный документ содержит техническое описание базовой
системы ввода-вывода (BIOS) ПЭВМ семейства IBM PC, включая ПЭВМ
IBM PC XT, AT и PS/2. Он основан на технической документации
фирмы IBM (IBM PC Technical References).
Дополнительными источниками информации послужили
многочисленные монографии, журнальные статьи и диалоговые
справочные системы (такие, как TECH Help!, Norton Guide и др.).
Кроме того, данное описание учитывает опыт авторов по разработке
и сопровождению программ в среде MS-DOS. Этот опыт позволил,
во-первых, исправить отдельные неточности и недоговоренности в
использованных материалах, и, во-вторых, описать ряд недоку-
ментированных особенностей BIOS указанных ПЭВМ.
Помимо описания BIOS, в документ включены описания двух
загружаемых драйверов: драйвера мыши в стандарте Microsoft/PC
Mouse и драйвера дополнительной памяти в стандарте LIM/EMS, а
также информация об использовании стандартного сетевого
интерфейса NETBIOS.
Вся приведенная информация подвергалась максимальной
проверке на ЭВМ; однако, авторы предполагают, что отдельные
нюансы описаний, заимствованных из фирменной документации, могут
содержать ошибки. Такие "подозрительные" моменты мы, по мере
воазможности, старались явно оговаривать в соответствующих
местах справочника.
Для понимания изложенного здесь материала требуется
владение основами программирования на языке ассемблера для IBM
PC (знание архитектуры процессора и директив ассемблера) и общее
представление о портах ввода-вывода ПЭВМ и связанных с ними
устройствах.
Авторы будут благодарны за любые указания на неточности,
замечания и дополнения, которые мы просим присылать по адресу:
620075, г. Свердловск,
ул. Луначарского 81,
Инженерно-техническое бюро.
тел. 56-92-54, 56-92-41.

- 3 -
Обозначения
PC, XT, AT, PCjr, PC Convertible и PS/2 - это имена
компьютеров семейства IBM PC. Все они более или менее совместимы
между собой на уровне прикладных пакетов, но имеют определенные
аппаратные различия:
PC: центральный процессор 8088, тактовая частота 4.77 МГц,
5 позиций для адаптерных плат.
PCjr: ЦП 8088, нет места для плат. Выпущена мизерным
тиражом и не совместима с остальными IBM PC. В нашей серии почти
не описывается.
XT: ЦП 8088, жесткий диск, 8 позиций для адаптерных плат. В
остальном аналогична PC.
Turbo PC: ПЭВМ других фирм (не IBM), совместимые с PC и XT,
но имеюший ЦП 8086 или V30 фирмы NEC, тактовая частота которых 6
или 8 МГц. Обычно имеет 8 позиций для плат.
XT-286: ЦП 80286, 8 позиций для плат, частота 6 Мгц без
холостых циклов (скорость как у AT с 8 МГц). Платы от AT к ней
не подходят, от PC подходят, но не позволяют использовать
преимущества 16-разрядной системной шины.
AT: ЦП 80286, 8 позиций для плат, тактовая частота 6 или 8
МГц.
PC Convertible: Портативный вариант AT. Отличия: плазменный
(LCD) дисплей, 3.5-дюймовые дисководы, нет позиций для плат
расширения.
PS/2: Новое семейство ПЭВМ фирмы IBM. Модели 25 и 30 - это
улучшенные версии старых PC, совместимые с ними по адаптерным
платам, с дисплеем MCGA. Модели 50 и 60 - ЦП 80286, 32-разрядная
шина MicroChannel, совместимости со старыми платами нет, дисплей
VGA. Модель 80 имеет ЦП 80386. Все модели оснащены дисководами
размером 3.5 дюйма.
AT-386: ПЭВМ третьих фирм, совместимая с AT, но имеющая ЦП
80386.
Если рассматриваемые устройства зависят от типа ПЭВМ, то
используются следующие пометки:
PC/XT относится к ПЭВМ IBM PC и XT, включая
Portable PC
AT относится к ПЭВМ IBM PC AT
PS/2 относится к семейству PS/2
Отсутствие таких указаний означает, что данный материал
применим ко всем ПЭВМ фирмы IBM.
Функция BIOS с номером XXh обозначаeтся "фн XXh", а ее

- 4 -
подфункции (если они есть) - "подфн ...".
Десятичные числа записываются обычным образом,
шестнадцатиричные отличаются добавлением буквы "h" в конце.
Например, 256 и 100h означают десятичное число 256.
Все размеры полей в управляющих структурах приведены в
байтах, если не оговорено противное.
В некоторых случаях алгоритмы сопровождаются формулами.
Операции в формулах обозначаются, как принято в языке Си, а
именно:
арифметические: +, -, *, /, % (взятие остатка)
битовые: & (и), | (или), ~ (не)
сдвиги: << и >>.

- 5 -
1. Основные понятия
1.1. Введение в BIOS
Базовая система ввода-вывода (BIOS - Basic Input/Output
System) для ПЭВМ семейства IBM PC и IBM PS/2 - это программный
интерфейс между программами и оборудованием ПЭВМ. BIOS изолирует
операционную систему и прикладные программы от аппаратных
особенностей конкретных устройств и позволяет программистам,
пишущим на языках ассемблера, Си и т.