Графика

    Видеопрограмма BIOS имеет несколько функций, которые обслуживают

    графику на IBM PC.  Устанавливая регистр AH равным 11, программа

    может сделать выбор цвета в графическом режиме.  Эта подпрограмма

    устроена так, что она работает с истинной палитрой, а не с

    предопределенными палитрами цветной платы.  Если графический режим

    320*200 имеет истинную палитру, то это означает, что должно

    существовать отображение в четыре цвета, возможных для каждой

    точки, из четырех цветов, которые хотела бы иметь программа.  В

    настоящее время это делается для цвета фона в режиме нормального

    разрешения.  Вы можете выбрать любой цвет в качестве цвета 0, цвета

    фона.  Интерфейс этой программы был разработан для того, чтобы

    позволять определение истинной палитры цветов, если фирма IBM

    когда-либо модифицирует аппаратуру так, чтобы позволять это.

 

      Чтобы достичь этой цели, значение точки определяется в регистре

    BH. В регистре BL определяется цвет, который присвоит адаптер этой

    точке. Например, если содержимое регистра BH равно 0; регистр BL

    содержит значение цвета фона. BIOS обслуживает значение регистра

    BH, равное только 0 или 1 , так как можно выбрать только цвет фона

    и одну из двух предопределенных палитр. Пролог BIOS определяет

    палитру. С помощью этой функции можно также определить цвет

    окаймления в текстовых режимах.

 

      Две другие графические подпрограммы позволяют читать либо

    записывать конкретные точки графического экрана. В простейших

    случаях эта функция BIOS позволяет вам определить строку и колонку

    без определения их отображения в буфер дисплея. При построении

    больших картин, а также при выполнении любой графической работы эти

    функции требуют очень много времени. Программа должна вызывать BIOS

    при выдаче каждой точки на экран. В случае режима высокого

    разрешения программа должна вызвать BIOS 128000 раз, чтобы

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

    выполняется очень быстро, она должна вычислять адрес буфера всякий

    раз, когда получает информацию о строке и колонке. Для этого

    действия требуется умножение и несколько сложений, и следовательно,

    требуется некоторое время. В общем случае программа записывает

    график с помощью стартового положения точки и смещений относительно

    этого положения. Это означает, что программа вычисляет положение

    первой точки с помощью алгоритма отображения в буфер, а положения

    остальных точек отсчитывает от текущего адреса буфера.

Hosted by uCoz