Программирование видеоадаптеров



Регистр горизонтального панорамирования (Horizontal Panning Register - HPR) (индекс13)


Регистр позволяет сдвинуть изображение на экране в горизонтальном направлении. При использовании регистра HPR совместно с регистром начального адреса контроллера атрибутов можно сдвигать изображение на любое количество пикселов.

Формат регистра горизонтального панорамирования представлен ниже:

D3-D0    Биты определяют величину горизонтального сдвига:

Биты

Величина сдвига содержимого экрана (в пикселах)

D3 D2 D1 D0

Монохромный текстовый режим

Режим 13h

Остальные режимы

0  0  0  0

8

0

0

0  0  0  1

0

-

1

0  0  1  0

1

1

2

0  0  1  1

2

-

3

0  1  0  0

3

2

4

0  1  0  1

4

-

5

0  1  1  0

5

3

6

0  1  1  1

6

-

7

1  0  0  0

7

-

-

1  0  0  1

-

-

-

1  0  1  0

-

-

-

1  0  1  1

-

-

-

1  1  0  0

-

-

-

1  1  0  1

-

-

-

1  1  1  0

-

-

-

1  1  1  1

-

-

-

D7-D4    Не используются.

По умолчанию для всех режимов работы видеоадаптера регистр горизонтального панорамирования содержит нулевые значения для всех битов.

На рисунке 8.18 иллюстрируется операция горизонтального сдвига содержимого экрана при различных значениях регистра HPR. На левой части рисунка регистр горизонтального панорамирования содержит ноль, а на правой части рисунка значение регистра увеличено до трех. Изображение на экране сдвигается на три пиксела влево.

PICTURE._FIG_30.PCX;6";4.308";PCX

Рисунок 4.18   Горизонтальный сдвиг экрана

Программа SCRSPLIT позволяет перемещать содержимое экрана по горизонтали и вертикали. Исходный текст программы представлен в листинге 4.11.

Листинг 4.11. Файл SCRSPLIT.C

// Смещение содержимого экрана по горизонтали и вертикали

#include "sysgraph.h"

#include <stdio.h>

#include <stdlib.h>

#include <graph.h>

#include "sysp.h"

#include <dos.h>

void HorScroll(unsigned, unsigned);




Содержание  Назад  Вперед