Курс лекций по компьютерной геометрии и графике
  256Компьютерная графикаКГиГТема № 5. Использование функций BIOS для работы с видеоадаптерами

Тема № 5 Использование функций BIOS для работы с видеоадаптерами

Страницы: 1 2 3

Страница 2

5.3 BIOS

BIOS является набором программ, которые помогают другим программам выполнять ввод и вывод информации. Часто, но не всегда аббревиатура BIOS сочетается с аббревиатурой ROM (ПЗУ). Одним из примеров широкого использования термина BIOS является BIOS ROM материнской платы. В таких ПЗУ хранятся коды многочисленных программ являющихся BIOS по своей природе, но здесь также хранятся Power On Self Test (POST) и программы начальной загрузки. Программа POST - первая программа, которая выполняется при включении питания компьютера. В её задачи входит обнаружение и проверка основных составляющих компьютера. Второй исполняющей программой является программа начальной загрузки, эта программа пытается найти и загрузить ОС.

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

Такая необходимость может возникнуть:
1. Если в систему устанавливается аппаратура, отличающаяся от стандартной.
2. При появлении новой программы обработки прерываний, которая лучше выполняет ту же самую функцию. Например, программы BIOS для вывода сообщений на экран универсальны и поэтому работают медленно. Замена видео ISR материнской BIOS один из распространённых примеров.
3. Связана с защищённым режимом работы компьютера, так как все программы BIOS материнской платы предназначены для работы в реальном режиме. Именно в реальном режиме компьютер загружается и остаётся в нём до тех пор, пока им управляет DOS.

Дополнительные BIOS ROM записаны в микросхемах ПЗУ, которые размещаются на дополнительных платах. ROM дополнительных плат всегда размещена в адресуемой процессором памяти, для этого в IBM-совместимых компьютерах зарезервировано две страницы C0000H - DFFFFH. В частности карты EGA или VGA и совместимые с ними обязаны располагать свои дополнительные ROM, начиная с адреса C0000H. Это связано с тем, что современные компьютеры перед тем, как выполнить большую часть программы самотестирования, ищут ROM именно по этому адресу. Если ROM дополнительной видеоплаты здесь не будет обнаружена, то POST не сможет изобразить на экране ни одного сообщения.

5.3.1 Дисковые дополнения BIOS

В компьютерах есть больше, чем одна BIOS. Во-первых, это BIOS в ROM на материнской плате. Во-вторых, это одна или больше возможных BIOS ROM на дополнительных платах. Кроме того, BIOS есть в самой DOS.
IO.SYS или IBMBIO.COM - расширения программ BIOS, записанных в ROM компьютера.

MSDOS.SYS или IBMDOS.COM - собственно дисковая операционная система.

Существует целый ряд причин, по которым в операционной системе разработаны BIOS, которые дополняют основную BIOS с расширениями записанными на диске. Одно из преимуществ загрузки части BIOS с диска то, что в компьютер можно загрузить операционную систему отличную от DOS. В этом случае дисковый BIOS заменит всю или почти всю существующую BIOS. Например: OS/2, UNIX.

5.3.2 Прямой доступ к аппаратному обеспечению и обращение к BIOS

Преимущества. При выполнении ряда задач существуют весьма убедительные причины для использования прямого управления аппаратурой. Изображение на экране монитора появляется после размещения соответствующей информации в буфере изображений видеодисплея. Это блок памяти Random Access Memory (RAM), который физически размещён на карте видеодисплея, но доступ к которому осуществляется точно так же, как и к самой RAM, хотя по другим адресам. Существует набор подпрограмм обработки прерываний BIOS, например, прерывание 10H, которые предназначены для манипулирования содержимым буфера изображения видеодисплея. Официально одобренный программный метод отображения информации на экране заключается в подготовке изображаемой информации и нескольких параметров указывающих, что делать с этой информацией и вызове BIOS-программы обработки прерываний для реального выполнения задач. Альтернативный метод заключается в том, что программа сама может записывать информацию в память видеобуфера.

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

С другой стороны, процедуры BIOS - это общецелевые программы и поэтому они не могут быть оптимизированы для каждого возможного использования и в случае прямого доступа, например, к буферу изображения видеодисплея, вывод может быть осуществлён значительно быстрее. Использование прямого управления аппаратурой целесообразно тогда, когда быстродействие существующих программ BIOS вас не устраивает, в противном случае предпочтителен BIOS, гарантирующий, что прикладные программы будут функционировать на более широком спектре РС-совместимого оборудования.

Недостатки. Недостатки одного подхода частично являются обратной стороной противоположного подхода. Работа через BIOS может привести к неприемлемо низкой производительности. Кроме того, в программах BIOS есть некоторые допущения сужающие круг выполняемых работ, например, старые BIOS, разработанные для 80486, предполагали, что на винчестере не может быть более 1023 цилиндров.

5.3.3 Обращение к BIOS и MS DOS из Borland Pascal

В модуле DOS определены процедуры Intr и MsDos, которые обеспечивают возможность обращения к функциям базовой системы ввода-вывода (т.е. BIOS) и операционной системы, соответственно. Для обращения к этим процедурам используется тип данных Registers:

Type
Registers = record
case integer of
0: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Word);
1: (AH, AL, BH, BL, CH, CL, DH, DL: Byte);
end;

Для корректного обращения необходимо иметь информацию о назначении регистров для любой функции BIOS и DOS. Для вызова соответствующего прерывания используется процедура

Intr (IntNo: Byte, Var Reg: Registers), где IntNo - номер вызываемого прерывания, Reg - служит для передачи прерыванию информации о регистрах.
Другая процедура MsDos (Var Reg: Registers), для обращения к соответствующей функции операционной системы MS DOS, номер функции содержится в регистре АН.
Например:
Function GetCursor: Word; {возвращает размер курсора}
Var DosReg: Registers;
Begin
With DOSReg do begin
AH := 3;
BH := 0;
Intr ($10, DosReg);
GetCursor := CX;
end;
end;

Страницы: 1 2 3

Рекламный блок

Информационный блок