Меню сайта

Урок 169. Сдвиг изображения

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

— — — — — Мы уже видели пользу сдвига окон приизучении операционной
— — — системы и языка Бейсик, которыеиспользовали для сдвига BIOS. Если
— — — работает 80-символьный дисплей, DOSустанавливает верхний левый
— — — угол окна сдвига равным (0, 0), а нижнийправый угол (24, 79). Так
— — — сдвигается весь экран. Но Бейсикиспользует двадцать пятую строку
— — — для индикации состояния дисплея, и только24 строки отводит под
— — — изображение программы. Когда Бейсиксдвигает экран с помощью
— — — базовой системы ввода-вывода, онустанавливает верхний левый угол в
— — — точке (0, 0), а правый нижний угол — вточке (23, 79). Из-за того,
— — — что последняя строка остается за пределамисдвига, она не
— — — перемещается во время сдвига. В следующейглаве приведен пример
— — — сдвига окна, вызываемого из программы наБейсике.

— — — — — Видеопрограмма BIOS выполняет сдвиги спомощью переноса
— — — символов и атрибутов в дисплейном буфере.Программа сдвига не
— — — меняет стартового адреса дисплейногобуфера- такой метод сдвига был
— — — бы быстрее, но не позволяет прикладнойпрограмме определять, куда
— — — должны попасть отдельные символы. Способсдвига, реализуемый в
— — — BIOS, подходит для обычной работы экрана.Заметим также, что
— — — программа сдвигает изображение принеобходимости более чем на одну
— — — строку. Обычно программа сдвигаетизображение на одну строку.
— — — Функция сдвига видеопрограммы BIOSпозволяет сдвинуть содержимое
— — — экрана на несколько строк. Если жеколичество строк сдвига равно
— — — нулю, программа BIOS очищает экран. Это -быстрый способ очистки
— — — всего экрана или его части.

— — — — — Когда программа работает в 80-символьномрежиме на цветном
— — — графическом адаптере, она не можетзаписывать или читать его текст
— — — в произвольные моменты времени. Еслипрограмма будет модифицировать
— — — буфер не в строго определенные моментывремени, на экране появятся
— — — помехи. Так как программа сдвига читает изаписывает большие
— — — количества данных, она должна бытьнаписана с учетом проблемы
— — — помех. Если посмотреть текст программыобслуживания операции
— — — сдвига, то можно увидеть, что BIOSобслуживает режим 80*25 цветной
— — — платы (переменная CRT_MODE равна 2 или 3),как специальный случай.
— — — В случае операций сдвига эта подпрограммаBIOS ждет до тех пор,
— — — пока не возникнет вертикальный обратныйход луча дисплея. Это
— — — означает, что аппаратура адаптера выдалана экран все содержимое
— — — буфера и готова начать новый кадр.(Аппаратура адаптера повторяет
— — — этот процесс регенерации экрана 60 раз всекунду). При появлении
— — — вертикального обратного хода программаBIOS выключает дисплей и
— — — выполняет сдвиг. Когда программа сдвигапереместит все символы, она
— — — снова включает дисплей. Это вызываеткороткое мигание дисплея. Если
— — — вы внимательно посмотрите на экран вовремя сдвига, то заметите,
— — — что верхние его шесть строк несколькотемнее остальных. Это
— — — происходит из-за того, что операция сдвигазанимает несколько
— — — большее время, чем один период регенерацииэкрана. Поэтому верхние
— — — шесть строк выключаются на два интерваларегенерации, а весь
— — — остальной экран — только на один интервал.Метод, допускающий
— — — появление помех на экране, настольконепригляден, что описанный
— — — метод предпочтительнее. Вы можете написатьнесколько программ,
— — — чтобы попробовать другие методы.

— — — — — Когда экран находится в графическомрежиме, начинает работать
— — — другая часть программы
сдвига. Хотя это исущественная часть
— — — программы BIOS, ее обсуждение отложим дотех пор, пока не
— — — рассмотрим чтение и запись символов наэкран.

Категория: Программирование на Ассемблере | Дата: 27.02.13

Меню раздела
Блок