Графические устройства

         

Расположение и размеры страниц



Расположение и размеры страниц

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

Если предполагается использовать N страниц, то в оперативной памяти надо выделить массив размером 2N слов. При выполнении подготовительных действий и эти слова задача должна поместить номера окон, в которых начинаются страницы и адреса нулевых строк страниц в этих окнах. Эти величины нужны для подпрограммы, выполняющей преобразование значений координат в адреса точек. Учитывая, что реальное количество страниц невелико, такой массив можно хранить в разделе данных задачи.

Оиеним возможное количество страниц. Предположим, что установленный на видеокарте объем памяти составляет 4 Мбайт и используется видеорежим с разрешением 640x480 точек. Если это режим packed pixel graphics, то в видеопамяти помещается 13 страниц, в режиме Hi-color их количество сократится в 2 раза, а в режиме True Color — в 4 раза. При более высоком геометрическом разрешении количество страниц сокращается. Поэтому можно считать, что оно не больше десяти.
Для определения допустимого количества страниц при выполнении задачи надо прочитать байт массива info со смещением 10h. В нем хранится номер последней страницы, которую можно установить в конкретном видеорежиме при имеющемся объеме видеопамяти. Страницы нумеруют начиная с нуля, поэтому их количество на 1 больше числа, хранящегося в байте 10b.

Кроме указанного массива, в разделе данных задачи надо выделить две переменные, например, Base_win и Base_addr для хранения исходного окна и адреса текущей страницы, с которой работает задача. В исходном состоянии эти переменные очищены, поскольку обычно работа начинается с нулевой страницы. В дальнейшем задача изменяет их значения в зависимости от номера используемой страницы.



Содержание раздела