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


         

Текст в графических режимах


    Одной из важных возможностей программы BIOS фирмы IBM является
    способность показывать на экране текст даже тогда, когда цветной
    графический адаптер работает в графическом режиме.      Это
    осуществляется с помощью таблицы образов символов по адресу
    0FFFFH:0FA6EH.  Эта таблица содержит образы символов для первых 128
    символов.  Если нужно, пользователь может загрузить в вектор
    прерывания 01FH указатель на таблицу образов оставшихся 128
    символов.
 
      Как видно в листинге BIOS, когда цветная графическая плата
    находится в графическом режиме, программа записи символа переходит
    к специальной части под названием GRAPHICS_WRITE. Эта часть
    программы извлекает образ символа из таблицы в ПЗУ или из таблицы
    пользователя и помещает точки в соответствующие места памяти
    дисплея. В этой программе есть несколько интересных мест. В режиме
    среднего разрешения программа BIOS расширяет 8-битовый по ширине
    образ символа в 16-битовый. Подпрограмма S21 (EXPAND_BYTE) помещает
    в     регистр AL строку образа символа и расширяет ее до полного
    слова, возвращаемого в регистре AX.
 
      Программа записи символов должна также учитывать адресацию
    четных и нечетных полей графической платы. В подпрограмме
    GRAPHICS_WRITE происходит запись различных строк образов в байты,
    расположенные на расстоянии 2000H друг от друга. Это лучше всего
    видно в подпрограмме записи для режима с высоким разрешением. В
    этом режиме BIOS может записывать символы со строками образа прямо
    в буфер дисплея. Но вместо использования команды REP MOVSB для
    пересылки восьми байт используется цикл для обслуживания четных и
    нечетных полей. Сначала BIOS записывает четное поле с помощью
    команды STOSB. Затем записывается нечетное поле с помощью команды
    MOV по адресу [DI+2000H-1].
 
      Другая возможность программ записи символов - запись символов
    на экран с помощью функции "исключающее или". Это обычный способ



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