Assembler для начинающих



         

Текстовый режим - часть 6


                 (с разрешения фирмы Motorola)
 
    Если попытаться изменять регистры с помощью утилиты DEBUG, то это
    может не сработать. Регистры R14 и R15 управляют позицией курсора,
    и если утилита DEBUG переместит курсор между вашими обращениями к
    индексному регистру и к регистру данных, изменения не произойдет.
    Так получилось потому, что утилита DEBUG изменила содержимое
    индексного регистра микросхемы 6845, и он уже больше не указывает
    на тот внутренний регистр, который вы хотели изменить.
 
      Другая интересная регистровая пара микросхемы 6845 - пара
    регистров начального адреса R12 и R13. Адаптер цветного
    графического дисплея имеет 16K байт памяти, а монохромная плата 4K
    байта. Дополнительная память в цветной плате используется для
    графических режимов, но она целиком в вашем распоряжении и в
    текстовых режимах. Для текстового режима 80*25 требуется 4K байта
    памяти, так что в буфере есть место для четырех разных страниц
    памяти. Сдвигать данные на экране можно переносом данных с одного
    места на другое, как это делалось на Фиг. 8.8. В случае же
    вертикального сдвига нужно лишь изменить начальный адрес в
    микросхеме 6845. Обычно начальный адрес равен 0. Если вы измените
    его на 80 (число символов в строке), отображение будет начинаться
    со второй строки. Это даст немедленный эффект сдвига всех данных
    экрана вверх на одну строку.
 
      На самом деле вы не изменяли данные, а сдвинули начало
    сканирования памяти дисплея. Можно рассматривать дисплей как окно
    80*25, через которое мы смотрим в 8192-символьный буфер дисплея.
 
      При использовании начального адреса для сдвига данных возникают
    сложности, когда вы приближаетесь к границе 16K байт. В этой точке
    отображение "заворачивается". Верхние строки извлекаются из конца
    буфера, а нижние строки - из его начала. Вы, конечно, сможете
    решить эту проблему, но для этого потребуются некоторые размышления



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