Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SP_MET_2.DOC
Скачиваний:
13
Добавлен:
02.05.2019
Размер:
689.66 Кб
Скачать
      1. Средства bios

Функции DOS вывода на экран позволяют перенаправлять вывод в файл, но не позволяют вывести текст в любую позицию экрана и не позволяют изменить цвет текста. Для более гибкой работы с экраном программы должны использовать видеофункции BIOS. BIOS (базовая система ввода-вывода) — это набор программ, расположенных в постоянной памяти компьютера, которые выполняют его загрузку сразу после включения и обеспечивают доступ к некоторым устройствам, в частности к видеоадаптеру. Все функции видеосервиса BIOS вызываются через прерывание 10h.

Рассмотрим функции, которые могут быть полезны для вывода текстов на экран.

Выбор видеорежима

BIOS предоставляет возможность переключения экрана в различные текстовые и графические режимы. Графические режимы отличаются друг от друга разрешением и количеством возможных цветов (глубиной цвета), текстовые — количеством строк и столбцов, цветовые возможности также могут различаться.

INT 10h, АН = 0Установить видеорежим

Ввод: AL = номер режима в младших 7 битах

Вывод: Нет.

Вызов этой функции приводит к тому, что экран переводится в выбранный режим. Если старший бит AL не установлен в 1, экран очищается. Номера текстовых режимов — 0, 1, 2, 3 и 7. 0 и 1 — 16-цветные режимы 40х25 (с 25 строками по 40 символов в строке), 2 и 3 — 16-цветные режимы 80х25, 7 — монохромный режим 80х25. Мы не будем пока рассматривать графические режимы, хотя функции вывода текста на экран DOS и BIOS могут работать и в них. Существуют текстовые режимы с более высоким разрешением (80х43, 80х60, 132х50 и т. д.), но их номера для вызова через эту функцию различны для разных видеоадаптеров. Однако если видеоадаптер поддерживает стандарт VESA BIOS Extention, в режимы с высоким разрешением можно переключаться, используя функцию 4Fh.

INT 10h, АН = 4Fh, AL = 2Установить SuperVGA-видеорежим

Ввод: ВХ — номер режима в младших 13 битах

Вывод: AL = 4Fh, если эта функция поддерживается

АН = 0, если переключение произошло успешно

АН = 1, если произошла ошибка

Если бит 15 регистра ВХ установлен в 1, видеопамять не очищается. Текстовые режимы, которые можно вызвать с использованием этой функции: 80х60 (режим 108h), 132х25 (109П), 132х43 (l0Ah), 132х50 (l0Bh), 132х60 (l0Ch).

Видеорежим, используемый в DOS по умолчанию, — текстовый режим 3.

Управление положением курсора

INT 10h, АН = 2Установить положение курсора

Ввод: АН = 2

ВН = номер видеостраницы

DH = строка

DL = столбец

С помощью этой функции можно установить курсор в любую позицию экрана, и дальнейший вывод текста будет происходить, начиная с этой позиции. Отсчет номера строки и столбца ведется от верхнего левого угла экрана (символ в левой верхней позиции имеет координаты 0, 0).

Видеоадаптер компьютера IBM PC имеет собственную оперативную память (видеопамять), содержимое которой определяет выводимое на экран изображение. Объем используемой для вывода на экран памяти зависит от режима работы видеоадаптера. Режимы делятся на графические, в которых изображение строится поточечно, и текстовые, обеспечивающие набор позиций для вывода символов.

При использовании стандартного текстового режима 80x25 объем видеопамяти превышает объем, необходимый для хранения выводимых данных. Часть видеопамяти, содержащая отображаемые данные, называется активной видеостраницей. Неиспользуемая часть видеопамяти составляет неактивные страницы.

В режимах 1 и 2 текстовый видеобуфер содержит 8 видеостраниц с номерами 0-7, в режимах 2 и 3 — 4 видеостраницы с номерами 0-3. По умолчанию активна страница 0. Можно вывести текст в неактивную в настоящий момент страницу, а затем переключиться на нее, чтобы изображение изменилось практически мгновенно.

INT 10h, АН = 3Считать положение и размер курсора

Ввод: АН = 3

ВН = номер видеостраницы

Вывод: DH, DL = номера строки и текущей позиции курсора в строке соответственно

СН, CL = первая и последняя строки курсора

Возвращает текущее состояние курсора на выбранной видеостранице (каждая страница использует собственный независимый курсор).

Курсор представляет собой указатель текущей позиции ввода, обычно мигающая полоска в нижней части позиции. Однако размер курсора по вертикали может быть изменен. Позиция текстового экрана может быть представлена в виде набора горизонтальных отрезков (называемых строками позиции), которые могут светиться. Величина курсора определяется номерами верхней (первой) и нижней (последней) строк позиции, составляющих курсор. Эти номера и возвращаются функцией 3 прерывания 10h в регистре СХ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]