Графика
Графика
Видеопрограмма BIOS имеет несколько функций, которые обслуживают
графику на IBM PC. Устанавливая регистр AH равным 11, программа
может сделать выбор цвета в графическом режиме. Эта подпрограмма
устроена так, что она работает с истинной палитрой, а не с
предопределенными палитрами цветной платы. Если графический режим
320*200 имеет истинную палитру, то это означает, что должно
существовать отображение в четыре цвета, возможных для каждой
точки, из четырех цветов, которые хотела бы иметь программа. В
настоящее время это делается для цвета фона в режиме нормального
разрешения. Вы можете выбрать любой цвет в качестве цвета 0, цвета
фона. Интерфейс этой программы был разработан для того, чтобы
позволять определение истинной палитры цветов, если фирма IBM
когда-либо модифицирует аппаратуру так, чтобы позволять это.
Чтобы достичь этой цели, значение точки определяется в регистре
BH. В регистре BL определяется цвет, который присвоит адаптер этой
точке. Например, если содержимое регистра BH равно 0; регистр BL
содержит значение цвета фона. BIOS обслуживает значение регистра
BH, равное только 0 или 1 , так как можно выбрать только цвет фона
и одну из двух предопределенных палитр. Пролог BIOS определяет
палитру. С помощью этой функции можно также определить цвет
окаймления в текстовых режимах.
Две другие графические подпрограммы позволяют читать либо
записывать конкретные точки графического экрана. В простейших
случаях эта функция BIOS позволяет вам определить строку и колонку
без определения их отображения в буфер дисплея. При построении
больших картин, а также при выполнении любой графической работы эти
функции требуют очень много времени. Программа должна вызывать BIOS
при выдаче каждой точки на экран. В случае режима высокого
разрешения программа должна вызвать BIOS 128000 раз, чтобы
изобразить каждую точку правильно. Хотя программы, входящие в BIOS
выполняется очень быстро, она должна вычислять адрес буфера всякий
раз, когда получает информацию о строке и колонке. Для этого
действия требуется умножение и несколько сложений, и следовательно,
требуется некоторое время. В общем случае программа записывает
график с помощью стартового положения точки и смещений относительно
этого положения. Это означает, что программа вычисляет положение
первой точки с помощью алгоритма отображения в буфер, а положения
остальных точек отсчитывает от текущего адреса буфера.