Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Stoneshard |#9| A Million Liches
Stoneshard |#8| Happy return
Stoneshard |#7| Oblivion
Stoneshard |#6| Rotten Willow Tavern

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Питер Нортон Весь текст 546.61 Kb

Программно-аппаратная организация компьютера IBM PC

Предыдущая страница Следующая страница
1 ... 30 31 32 33 34 35 36  37 38 39 40 41 42 43 ... 47
       ____________________________________________________________


     Пятая функция обслуживания (функция  с  кодом  4)  предназначена  для
считывания местоположения, указанного световым пером ( для систем, имеющих
световое перо).  В  результате  выполнения  фиксируется  факт  подключения
светового пера;  если  световое  перо  подключено,  то  фиксируется  также
положение указанной точки. Положение задается как в терминах символов, так
и в терминах пикселей (этот вопрос подробно обсуждается в следующей главе,
посвященной графике).
     Регистр AH  предназначен  для  индикации  подключения светового пера:
если AH=1,  то  световое  перо  подключено,  в  противном  случае  (AH=0),
световое перо не используется.  Положение объекта,  вычлененного с помощью
светового пера формируется  либо  в  виде  содержимого  регистров  CH,  BX
(положение пикселя).  Поскольку величина, соответствующая (горизонтальной)
позиции пикселя может превышать 255,  то для нее  отводится  полное  слово
(регистр BX).
     Ниже приводятся сведения о составе и содержимом регистров.

       ____________________________________________________________

            Номер  функции               Параметры
             обслуживания
       ____________________________________________________________

                AH = 4        DH = номер строки символов
                              DL = номер позиции (столбца)символа
                              CH = номер строки пикселей
                                        (0 - 199)
                              BX = номер позиции (столбца) пикселя
       ____________________________________________________________


     Световое  перо  не  относится  к  числу  наиболее    распространенных
аппаратных средств  для  IBM/PC.  Это  своего  рода  сдерживающий  фактор,
поскольку может использоваться только с дисплеями, обладающими очень малым
временем  послесвечения  люминофора,  т.е.  такими  дисплея,  у    которых
светимость  точки  быстро  падает  после  перемещения  луча  развертки   в
следующую точку экрана. Такие дисплеи быстро утомляют  оператора.  Поэтому
хорошие дисплеи не нуждаются в световом  пере.  Для  монохромного  дисплея
фирмы IBM  применяется  фосфорный  дисплей  с  длительным  послесвечением,
облегчающий восприятие  изображений.  Можно  считать,  что  световое  перо
получит  ограниченное  распространение  (в  основном    для    специальных
приложений) в сфере персональных компьютеров.
     Шестая функция обслуживания (функция  с  кодом  5)  используется  для
установки (подключения)  активной  страницы  в  многостраничном  текстовом
режиме цветного графического дисплея. Номер страницы задается  в  регистре
AL. Для 40-позиционных режимов номера страницы лежат в диапазоне 0 - 7,  а
для 80 позиционных режимов -  в  диапазоне  0  -  4.  По  умолчанию  номер
страницы принимается равным 0. Эта  страница  помещается  в  самом  начале
памяти дисплея, а каждая последующая страница с интервалом в  2К  (для  40
позиционных режимов) или через 4К (для 80 позиционных  режимов).  Большему
номеру страницы соответствуют ячейки памяти с большими адресами.

       ____________________________________________________________

            Номер функции                    Параметры
             обслуживания
       ____________________________________________________________

               AH = 5           AL = номер новой страницы дисплея
                                     (0 - 3 для режимов 2 и 3, 0 -
                                     7 для режимов 0 и 1)
       ____________________________________________________________


     Две  следующих  функции  обслуживания  /функции  с  кодами  6  и   7/
используются для реализации режима "прокрутки" (скроллинга) информации  на
экране дисплея.  Использование  компьютера  IBM/PC  в  режиме  "прокрутки"
представляет  собой  одну  из  интереснейших   возможностей    отображения
информации, однако лишь немногие программы, используют эту возможность.  В
режиме "прокрутки" можно перемесить содержимое экрана вверх  или  вниз  на
любое число строк. При этом  отображаемые  символы  смещаются  за  пределы
экрана вверх или вниз, а освободившаяся часть экрана  заполняется  пустыми
строками. Особенность этого режима отображения состоит в том, что  в  роли
экрана может выступать произвольная прямоугольная область  экрана  (окно),
на которую распространяется "прокрутка"; остальные участки экрана остаются
неизменными. Выделив несколько окон, можно организовать в  каждом  из  них
режим "прокрутки". Возможности обработки данных здесь  огромные,  остается
лишь недоумевать, почему большинство программ их редко используют.
     Функция с кодом 6 предназначена для "прокрутки" вверх,  а  функция  с
кодом 7 предназначена для "прокрутки" вниз. И в том,  и  в  другом  случае
следует специфицировать два противоположных угла окна -  верхний  левый  и
нижний правый. Спецификация задается в терминах строк и столбцов.  Следует
также задать  число  перемещаемых  строк;  это  число  может  совпадать  с
размером окна. И последний обьект спецификации - атрибут отображения строк
заполнителей. Таким образом, имеется возможность  управлять  цветом  окна.
Если планируется использование техники работы с  окнами,  то  имеет  смысл
выделить окно путем приписывания ему атрибута  отображения,  отличного  от
атрибута  отображения  всего  остального  экрана.  С  помощью    механизма
прокрутки текст сообщения не может быть помещен в новые строки окна -  для
этого следует принять специальные меры.
     Число перемещаемых строк указывается в регистре AL. Если AL=0, то все
окно заполняется пустыми строками (то  же  самое  происходит,  если  число
перемещаемых строк  превышает  размеры  окна).  Положение  и  размер  окна
указываются в регистрах CX и DX: в CH указывается верхняя строка, а в DH -
нижняя; в CL указывается левая позиция (столбец, а в DL - правый. Атрибуты
изображения пустых строк указываются в регистре BH. Ниже приводятся  общие
сведения о составе и содержимом регистров.

       ____________________________________________________________

            Номер  функции                 Параметры
             обслуживания
       ____________________________________________________________

                AH = 6      AL = количество сдвигаемых строк
                            CH = номер строки верхнего левого
                                 угла окна
                            CL = номер позиции (столбца) верхнего
                                 левого угла окна
                            DH = номер строки нижнего правого угла
                                 окна
                            DL = номер позиции (столбца) нижнего
                                 правого угла окна
                            BH = атрибуты изображения пустых
                                 строк
       ____________________________________________________________


     "Прокрутка" содержимого окна как правило выполняется в два этапа. Как
только новая строка подготовлена к записи  в  окно,  осуществляется  вызов
функции  обслуживания  с  кодом  6  (или  7)  для  перемещения    текущего
содержимого окна. После этого в новую строку заносится нужная  информация.
Для этого используются функции обслуживания "установка курсора" и  "запись
символа". Ниже приводится пример, иллюстрирующий излагаемые положения.


     DEBUG; вызов программы-отладчика DEBUG
       A
     INT 10; вызов  Ассемблера
     [Return]; выход из Ассемблера
     R  AX; извлечение содержимого регистра AX  для  просмотра
            и изменения
     06 03; установка функции обслуживания с кодом 6, количество
            сдвигаемых строк 3
     R  CX; извлечение  содержимого регистра CX для  просмотра
            и изменения
     050A;  установка верхнего левого угла: строка 5, столбец 10
     R  DX; извлечение содержимого регистра DX для  просмотра
            и изменения
     1020;  установка правого нижнего угла: строка 16, столбец 32
     D  0  L 180; заполнение экрана
     G  100 102; выполнение прерывания 10, стоп.


     Следующие три функции обслуживания предназначены для  манипулирования
символами. С помощью этих функций осуществляются операции ввода-вывода без
непосредственного  обращения  из  пользовательских  программ  к    области
памяти,в которой хранится закодированный образ экрана дисплея. В  связи  с
уже упоминавшимся ранее аспектами вывода информации на экран дисплея путем
прямой модификации содержимого памяти, хранящей копию  изображения,  здесь
следует  заметить,  что  использование  этих  функций   делает   программы
пользователя более мобильными и менее зависимыми  от  особенностей  Вашего
компьютера. Рассмотрим эти функции более подробно.
     Девятая  функция  обслуживания  (функция  обслуживания  с  кодом   8)
осуществляет  считывание  символа  и  атрибута,  соответствующих   текущей
позиции курсора. Как и в случае  некоторых  других  функций  обслуживания,
здесь следует указать номер используемой страницы  (несмотря  на  то,  что
страница применяется только  к  текстовому  режиму  цветного  графического
дисплея). Функция обслуживания 8 работает  как  в  графическом,  так  и  в
текущем режимах; более детальные сведения, касающиеся отображения символов
в графическом режиме  приведены  в  следующей  главе.  Заметим  лишь,  что
поскольку  в  графическом  режиме  атрибут  изображения  отсутствует  (это
понятие применимо лишь к текстовому режиму, либо к монохромному  дисплею),
то его считывание не осуществляется.
     Особенность этого режима состоит в том, что  одни  и  те  же  таблицы
изображения символов, используемые для их записи, используются также  и  в
случае их распознавания путем сличения. Распознование осуществимо  даже  в
случае создания своего собственного набора графических символов.
     Код  символа  ASCII  заносится  в  регистр  AL.  Если    символ    не
соответствует кодам ASCII, то в графическом режиме в регистр заносится 00.
Атрибуты  изображения  заносятся  в  регистр  AH.  Страница    изображения
указывается в регистре BH.  Для  работы  в  графическом  режиме  установку
страницы осуществлять не следует.

       ____________________________________________________________

         Номер  функции                 Параметры
          обслуживания
       ____________________________________________________________

             AH = 8     BH = активная страница изображения
                            (для графического режима не требуется)
                        AL = символ ASCII, считанный из позиции,
                             указанной курсором
                        AH = атрибут текстового символа
       ____________________________________________________________


     Функция обслуживания с кодом 9 предназначена для записи символа  (или
нескольких его копий) и атрибута. Символ задается в регистре AL, а атрибут
текстового режима или цвет графического режима  заносится  в  регистр  BL.
Количество копий символов помещается в регистр CX.
     Для текстовых режимов в регистре  BH  должна  быть  указана  страница
изображения; графические режимы этого не требуют.
     Символ и   его  атрибуты  цвета  записываются  столько  раз,  сколько
требуется  (начиная  с  текущей  позиции  курсора).  Курсор  при  этом  не
перемещается,   запись   производится  в  последующие  позиции  экрана.  В
текстовом режиме при дублировании символов может быть организован  переход
на следующую строку. В графическом режиме такая возможность отсутствует.
     Описываемая функция обслуживания весьма полезна как в одиночном так и
групповом  режимах.  Групповой  режим  часто используется для оперативного
вывода   пробелов   или   других   повторяющихся    символов    (например,
горизонтальных  линий).  Если требуется сформировать символ в единственном
экземпляре, то следует установить счетчик в CX равным 1. Если его значение
Предыдущая страница Следующая страница
1 ... 30 31 32 33 34 35 36  37 38 39 40 41 42 43 ... 47
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама