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

         

Новые переменные



Новые переменные

После чтения массива info задаче доступны две величины, имеющие отношение к разрешающей способности режима.

  1. 1. Одна из них расположена в слове со смещением 12h, она указывает ширину экрана, выраженную в точках. В главе 2 предлагалось хранить копию этого слова в переменной Horsize, которая затем неоднократно использовалась в примерах.
  2. 2. Другая величина расположена в слове со смещением ion, она указывает, сколько байтов видеопамяти отображается при выводе строки на экран. Иначе говоря, это ширина строки, умноженная на размер кода точки, выраженный в байтах. В документации VESA она называется bytes per scan line.

При работе в режимах PPG обе величины совпадают, поэтому мы использовали только первую из них. Теперь нам может пригодиться и вторая величина, поэтому после чтения массива info ее значение надо присвоить переменной bperiine, она была описана в примере 2.11, но не применялась.

В некоторых случаях нам будет нужен размер кода точки в байтах. Такой величины в массиве info нет, но байт со смещением 19h содержит количество разрядов в коде точки. Если его сдвинуть на три разряда вправо и результат преобразовать в слово, то получится нужная нам переменная.

Если копию этой переменной сдвинуть еще на 1 разряд вправо, то получится еще одна переменная, содержащая количество слов в коде точки. Имена и описания новых переменных следующие:

bperiine dw 2560 ; размер строки отображаемой на экране в байтах
bytppnt dw 0004 ; размер кода точки, выраженный в байтах
wrdppnt dw 0002 ; размер кода точки, выраженный в словах

В этом описании переменных указаны значения, которые получаются при установке режима H2h — True color, 640x480 точек.

Преобразование координат в адрес выполняется перед началом работы с большинством графических объектов.



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