Методические указания по лабораторным работам по курсу «Аппаратные средства компьютерных систем», страница 24

Для вызова функций VESA необходимо регистр AL записать номер функции VESA и воспользоваться функцией 4Fh прерывания Int 10h. Необходимо помнить, что каждая функция VESA возвращает в регистре AX результат выполнения операции: AL=4Fh — SVGA-BIOS поддерживает интерфейс VESA, AH=00h — функция выполнилась успешно, AH=01h — ошибка выполнения функции.

В стандарте VESA отсутствуют функции вывода графической точки в SVGA-режимах, следовательно, реализация данной функции выполняется программно. Алгоритм вывода точки для 256-цветных видеорежимов выглядит следующим образом:

1.   Вычислить адрес видеопамяти для точки по формуле:

VideoAdr = Y * BytesInLine + X,

где X, Y — координаты графической точки, BytesInLine — количество байт в графической строке.

2.   Вычислить и активизировать банк (окно) видеопамяти

Win = (Bank * 64) div WinGran,

где Bank — старшее слово вычисленного адреса видеопамяти, WinGran — Window granularity, в Кбайтах.

3.   Записать в ячейку видеопамяти код цвета Mem[VideoSeg:VideoOffs] = Col,

где VideoSeg — сегмент видеопамяти (0A00h), VideoOffs — младшее слово VideoAdr, Col — код (номер) цвета пикселя.

3.3  Описание лабораторной установки

Персональный компьютер, совместимый с  IBM PC AT, оснащенный видеоадаптером SVGA и работающий под управлением ОС MS-DOS.

Инструментальные программные средства пакета Turbo Assembler фирмы Borland: компилятор tasm.exe, компоновщик tlink.exe, отладчик td.exe.

3.4  Порядок выполнения работы

Порядок выполнения работы соответствует приведенному в разделе «Общие положения».

3.5  Содержание отчета

Содержание отчета соответствует приведенному в разделе «Общие положения».

3.6  Контрольные вопросы и задания

1.   Приведите характеристики графических адаптеров.

2.   Перечислите режимы экрана и их характеристики.

3.   Поясните принцип формирования изображения в текстовом режиме.

4.   Что такое атрибут символа? Поясните принцип его формирования.

5.   Приведите функции управления курсором. Поясните, каким образом можно "включить/выключить" курсор?

6.   Приведите функции вывода символа на экран. Поясните их отличия.