Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC
Б А З О В А Я С И С Т Е М А В В О Д А - В Ы В О Д А
Цикл издается под pедакцией Ю. С. Лукача ------------------------------------------------------------ (C) Инженеpно-техническое бюpо, 1990 Полное или частичное воспpоизведение или pазмножение каким бы то ни было способом материалов, опубликованных в настоящем изда- нии, допускается только с письменного разре- шения Инженерно-технического бюро. Свеpдловск 1990
- 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 изолирует операционную систему и прикладные программы от аппаратных особенностей конкретных устройств и позволяет программистам, пишущим на языках ассемблера, Си и т.