Глава 4. Вывод на терминал.

Раздел 5. Сдвиг экрана и страницы.

4.5.2 Сдвиг текстового экрана горизонтально.

Горизонтальный сдвиг иногда требуется в специальных программах обработки текста, таких как текстовые редакторы. Операционная система не имеет для этого специальных средств. По этой причине данная задача немного сложнее чем вертикальный сдвиг - но несущественно. Рассмотрим случай, когда Вы хотите, чтобы экран сдвигался влево на 5 позиций. При этом левые 5 столбцов исчезнут, весь остальной текст сдвигается влево, а самые правые 5 столбцов должны быть очищены. Поскольку видеобуфер представляет из себя одну длинную строку, то если каждый символ буфера сдвинуть на 10 байтов вниз, то суммарный эффект будет состоять в том, что самые левые 5 символов каждой строки будут передвинуты в последние 5 позиций предыдущей строки. Таким образом, весь экран будет сдвинут влево на 5 позиций, передвигая 5 ненужных столбцов в правую часть экрана. Все что после остается - это очистить правые 5 столбцов. Это легко делается с помощью процедуры вертикального сдвига {4.5.1}, которая может выполняться для любой части экрана и которая очищает указанную область если указать сдвиг на 0 строк.

Hизкий уровень.

В этом примере осуществляется сдвиг на 5 позиций влево. Легко изменить его для сдвига вправо или для другого значения позиций сдвига. При использовании прямого отображения в память этот метод дает практически моментальный сдвиг экрана.
;---сдвигаем все вниз на 10 байтов
MOV AX,0B000H ;указываем на буфер монохромного
MOV ES,AX ;дисплея
MOV DS,AX ;
MOV SI,10 ;сдвигаем из SI ...
MOV DI,0 ;... в DI
MOV CX,1995 ;сдвигаем все кроме последних 5 байт
REP MOVSW ;осуществляем сдвиг
;---очищаем правый край
MOV AH,6 ;функция вертикального сдвига
MOV AL,0 ;сдвиг на 0 строк чистит окно
MOV CH,0 ;строка левого верхнего угла
MOV CL,75 ;столбец левого верхнего угла
MOV DH,24 ;строка правого нижнего угла
MOV DL,79 ;столбец правого нижнего угла
MOV BH,7 ;атрибут для очищаемых позиций
INT 10H ;чистим окно


<~-4.5.1 Вертикальный сдвиг текстового экрана.
Содержание
4.5.3 Переключение между текстовыми страницами.-~>

Сайт управляется системой uCoz