Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программирование EGA и VGA

¦      ПОДФУНКЦИЯ 30h

         Регистры (устанавливаются до вызова функции):
	 ---------------------------------------------
         AL:        установить 30h
         BH:        0-возвращает текущее состояние INT 1fh
                    1-возвращает текущее состояние INT 43h
                    2-возвращает размещение набора символов ПЗУ 8х14
                    3-возвращает размещение набора символов ПЗУ 8х8
                    4-возвращает размещение верхней части (ASCII-коды,
                      начиная с 128) набора символов ПЗУ 8х8
                    5-возвращает размещение альтернативного набора
                      символов ПЗУ 9х14*
                    6-возвращает размещение набора символов ПЗУ 8х16
                    f-возвращает размещение альтернативного набора
                      символов ПЗУ 9х16*
	 ---------------------------------------------

         Регистры (чтение выполняется после обращения):
	 ---------------------------------------------
         CX:        число точек (байтов на символ)
         DL:        строки
         ES:        сегмент возвращаемого адреса
         BP:        смещение возвращаемого адреса
	 ---------------------------------------------
         * Монохромный адаптер использует некоторые символы, которые
           несколько отличаются от их эквивалентов на ESD (например,
           "М" и "$"). Отмеченная символом * таблица содержит символы-
           заменители для алфавитно-цифрового режима 7. Символы 9х14
           определены как символы 8х8. Если символ представляет собой
           код блочной графики, его 9-й столбец не отличается от 8-го,
           иначе 9-й столбец остается пустым.

                  Форма символьной таблицы ASCII

			--------        0h
			--------        0h
                        --------        7eh
                        --------        8lh
                        --------        a5h
                        --------        8lh
                        --------        8lh
                        --------        bdh
                        --------        99h
                        --------        8lh
                        --------        7eh
			--------        0h
			--------        0h
			--------        0h

                  db   14 dup(0)                ;ASCII 0
                  db   0,0,7eh,81h,a5h,81h,81h  ;ASCII 1
                  db   bdh,99h,81h,7eh,0h,0h,0h ;ASCII 1
                                                ;здесь ASCII 2
                                                ;здесь ASCII 3
                                                ;и т.д.


    Пример на языке ассемблера
    -------------------------------------------------------------------

    Приведенная ниже программа выполняет печать сообщения "The quick
    brown fox jumps over the lasy dog", при этом стиль печати буквы
    "е" изменяется на "заглавный меньшего размера".

    pause    macro
             local   no_adj,done

    ;формируется не зависящая от процессора задержка
    ;длительностью приблизительно 10 секунд

             mov       AH,2ch ;получить время от DOS
             int       21h    ;прерывание DOS
             mov       BH,DH  ;поместить число секунд в ВН
             add       BH,10  ;добавить 10 секунд
             cmp       BH,60  ;если больше 59б SUB 60
             jb        no_adj
             sub       BH,60

    no_adj:  int 21h           ;прерывание DOS
             cmp     BH,DH
             je      done
             jmp     no_adj

    done:
             endm

    data     segment public

             msg     db        'The quick brown fox jump
                               over'
                     db        'the lasy dog.$'
             new_e   db        00000000b
                     db        00000000b
                     db        00000000b
                     db        00000000b
                     db        00000000b
                     db        00000000b
                     db        11111110b
                     db        10000000b
                     db        11111110b
                     db        00000000b
                     db        00000000b
                     db        00000000b

    data      ends

    code      segment public
              assum CS:code
    main      proc   far

    start:    push   DS
              sub    AX,AX
              push   AX
              mov    AX,data
              mov    DS,AX
              assume DS:data
              mov    DX,offset msg;получить адрес сообщения
              mov    AH,9         ;вызов печати строки DOS
              int    21h          ;обращение к DOS

              pause

              mov    AX,1100h     ;Загрузка алфавитно-цифрового режима
                                  ;пользователя (и переустановка режима)
              mov    BL,0         ;набор символов 0
              mov    BH,14        ;14 байтов на символ
              mov    CX,1         ;1 символ
              mov    DX,65h       ;изменение "е" нижнего регистра
              push   DS
              pop    ES           ;символ в сегменте данных
              mov    BP,offset new_e  ;взять смещение "е"
              int    10h          ;обращение к видео BIOS

              ret

    main      endp

    code      ends

    end       start
    ------------------------------------------------------------------

========================================================================
ВЫЗОВ ФУНКЦИИ 12h: АЛЬТЕРНАТИВНЫЙ ВЫБОР

КОММЕНТАРИИ

     Функция возвращает информацию о текущих установках адаптера и пре-
дусматривает выбор альтернативной программы печати экрана (printscreen).
     Альтернативная программа печати экрана позволяет вывести на печать
43-строчный экран (стандартная программа печати экрана позволяет пе-
чатать только 25 строк). Печать графических экранов не поддерживается.


ИСХОДНЫЕ ДАННЫЕ

     Регистры (устанавливаются до вызова функции):
     ---------------------------------------------
     AH:        устанавливается 12h
     ---------------------------------------------

¦      ПОДФУНКЦИЯ 10h: ВОЗВРАЩАЕТ ИНФОРМАЦИЮ

         Регистры (устанавливаются до вызова функции):
         ---------------------------------------------
         BL:        Устанавливается 10h
	 ---------------------------------------------

         Регистры (чтение выполняется после обращения):
         ----------------------------------------------
         BH:        0-действие цветного режима
                      (регистры адаптера 3d?h)
                    1-действие монохромного режима
                      (регистры адаптера 3b?h)
         BL:        Размер установленной памяти адаптера
                    0=64К
                    1=128К
                    2=192К
                    3=256К
         CH:        установка битов признаков (см. описание регистра
                    Управления Характеристиками)
         CL:        положения переключателей (переключатели платы EGA)

¦      ПОДФУНКЦИЯ 20h: ВЫБОР АЛЬТЕРНАТИВНОЙ ПРОГРАММЫ ПЕЧАТИ ЭКРАНА

         Обращение к этой функции выбирает альтернативную программу
         печати экрана.

         Регистры (устанавливаются до вызова функции):
	 ----------------------------------------------
         BL:        устанавливается 20h.
	 ----------------------------------------------

     Применение адаптера VGA делает доступными следующие функции (если
функция поддерживается, после завершения ее работы в регистр AL поме-
щается 12h).


¦      ПОДФУНКЦИЯ 30h (только VGA) ВЫБОР КОЛИЧЕСТВА СТРОК РАЗВЕРТКИ
                      В АЛФАВИТНО-ЦИФРОВОМ РЕЖИМЕ

         Рассматриваемая функция позволяет изменить число строк раз-
         вертки, rоторое будет использоваться при следующей установке
         алфавитно-цифрового режима. Функция позволяет получить режимы,
         внешне не отличающиеся от MDA,CGA и EGA.

         Регистры (устанавливаются до вызова функции):
	 ----------------------------------------------
         BL:        устанавливается 30h
         AL:        0-200-строчная развертка (CGA)
                    1-350-строчная развертка (MDA и EGA)
                    2-400-строчная развертка (VGA)
	 ----------------------------------------------

         Регистры (чтение выполняется после обращения):
	 ----------------------------------------------
         AL:        12h
	 ----------------------------------------------

¦      ПОДФУНКЦИЯ 31h (только VGA) РАЗРЕШЕНИЕ ЗАГРУЗКИ ПАЛИТРЫ
                      ПО УМОЛЧАНИЮ

         Функция разрешает или запрещает использование палитры, преду-
         смотренной по умолчанию, при смене режима. При использовании
         EGA в процессе переустановки режима текущая палитра всегда
         заменяется палитрой, предусмотренной по умолчанию, однако VGA
         обладает возможностью сохранения текущей палитры при пере-
         установке режима.

         Регистры (устанавливаются до вызова функции):
         ----------------------------------------------
         BL:         устанавливается 32h
         AL:         0-разрешение палитры по умолчанию
                     1-запрещение палитры по умолчанию
	 ----------------------------------------------

         Регистры (чтение выполняется после обращения):
	 ----------------------------------------------
         AL:         12h
	 ----------------------------------------------

¦      ПОДФУНКЦИЯ 32h (только VGA): Видеофункция

         Функция разрешает или запрещает использование адаптера. В
         случае запрещения использования адаптера выведенное на экран
         изображение не изменяется, однако дальнейшее чтение и запись
         информации на дисплей будут невозможны до снятия запрещения.

         Регистры (устанавливаются до вызова функции):
	 ----------------------------------------------
         BL:        устанавливается 32h
         AL:        0-разрешение работы
                    1-запрещение работы
	 ----------------------------------------------

         Регистры (чтение выполняется после обращения):
	 ----------------------------------------------
         AL:        12h
	 ----------------------------------------------

¦      ПОДФУНКЦИЯ 33h: СУММИРОВАНИЕ ДЛЯ ПОЛУЧЕНИЯ ГРАДАЦИЙ СЕРОГО

         Функция разрешает или запрещает преобразование цвета в градации
         серого. В случае, когда суммирование весовых коэффициентов раз-
         решено, после сброса текстового режима или изменения регистров
         палитры яркость серого представляет собой сумму 30% яркости
         красного, 59% яркости зеленого и 11% яркости синего.

         Регистры (устанавливаются до вызова функции):
	 ----------------------------------------------
         BL:        устанавливается 33h
         AL:        0-разрешение суммирования
                    1-запрещение суммирования
	 ----------------------------------------------

         Регистры (чтение выполняется после обращения):
	 ----------------------------------------------
         AL:         12h
	 ----------------------------------------------

¦      ПОДФУНКЦИЯ 34h: ЭМУЛЯЦИЯ КУРСОРА

         Функция разрешает или запрещает эмуляцию курсора CGA в
         алфавитно-цифровых режимах. При эмуляции курсор представ-
         ляется так, как будто знакоместо имеет высоту 8 пикселей
         (см. описание обращения к функции 1 "Установка типа курсора").
         Если эмуляция запрещена, курсор устанавливается в соответствии
         с действительным числом строк развертки.

         Регистры (устанавливаются до вызова функции):
	 ----------------------------------------------
         BL:        устанавливается 34h
         AL:        0-разрешение эмуляции курсора CGA
                    1-запрещение эмуляции курсора CGA
	 ----------------------------------------------

         Регистры (чтение выполняется после обращения ):
	 ----------------------------------------------
         AL:        12h
	 ----------------------------------------------

[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог