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