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



         

Адаптер монохромного дисплея и принтера


      Сначала поговорим о монохромном дисплее, он - простейший из
    двух адаптеров. Мы отложим описание той части платы, которая
    работает с печатающим устройством, пока не дойдем до адаптера
    печатающего устройства. Схема адаптера печатающего устройства на
    монохромной плате идентична схеме отдельного адаптера печатающего
    устройства, поэтому способы программирования их также одинаковы.
 
      Черно-белая плата работает в одном режиме. Этот видео адаптер
    предназначен для вывода 25 строк символов по 80 символов в строке.
    Такое построение изображения называют режимом 80*25. Вы помещаете
    символы на экран, записывая коды ASCII в буфер дисплея. Буфер
    дисплея - это специальная область памяти, расположенная в адресном
    пространстве по адресу 0B0000H. Эта память - часть платы адаптера,
    а не системной памяти. Всякий раз, когда вы записываете символ в
    коде ASCII в буфер дисплея, он появляется в соответствующем месте
    экрана. Преобразование символа из кода ASCII в точки на экране
    выполняется аппаратно.
 
      Каждый символ на дисплее имеет атрибут. Атрибуты символов
    определяют вид, в которым адаптер выводит символы на экран. На Фиг.
    8.7 показаны атрибуты символов и их значения. Вам нужно знать эти
    значения, так как их тоже надо помещать в буфер дисплея. Позиция
    каждого символа в буфере дисплея занимает два байта. Четный байт
    пары содержит код символа, а нечетный - значение атрибута. По Фиг.
    8.7 можно определить значение атрибута, с которым выводить на экран
    символ. Обычно выводится белый (на самом деле зеленый) символ на
    черном фоне. Для этого случая значение атрибута равно 07H. Чтобы
    сделать изображение негативным, нужно изменить значение атрибута на
    70H. Атрибут 00H делает символ невидимым. Хотя код ASCII символа и
    записан в байт символа, значение атрибута не дает символу появиться
    на экране.
 
      Дисплейный буфер черно-белой платы содержит 4K байта памяти.
    Этого достаточно, чтобы иметь байты символов и атрибутов для каждой



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