Модуль CRT

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

Для того чтобы стали доступны находящиеся в модуле процедуры и функции, необходимо явно указать модуль CRT командой

Uses

Crt;

Модуль CRT сравнительно невелик и содержит средства, позволяющие:

- устанавливать определенный текстовый режим;

- управлять перемещением курсора на экране;

- выводить на экран информацию;

- задавать цветовые атрибуты выводимых символов;

- организовывать простой оконный дизайн экрана.

Кроме этого, в модуле имеются средства взаимодействия с клавиатурой, процедуры элементарного управления звуком, а также некоторые другие примитивы.

Примечание. Относительная компактность модуля CRT находится в очевидном противоречии с весьма широким спектром возможностей современных адаптеров. Иными словами, за рамками этого модуля остается много средств управления экраном. Поэтому, практически любая программа с развитой экранной компонентой использует, наряду со штатными средствами модуля CRT, дополнительные возможности адаптера, не поддерживаемые этим модулем. Многие сервисные пакеты независимых фирм, ориентированные на Turbo Pascal (например, Power Tools Plus, Object Professional), содержат расширенные варианты модуля CRT. На следующем занятии мы рассмотрим некоторые дополнительные возможности управления экраном, существенные в практической работе.

Итак, мы уже знаем, что при работе с экраном через модуль CRT весь экран разбивается на отдельные строки, а каждая строка ­ на отдельные позиции, в каждую из которых можно поместить один символ. Таким образом экран разбивается на отдельные прямоугольные элементы.

Рассмотрим допустимые текстовые режимы адаптера и технику их установки в Turbo Pascal- программах.

В общем случае модуль CRT поддерживает пять базовых вариантов текстового режима и еще несколько дополнительных.

Для установки одного из текстовых режимов предназначена процедура

Procedure TextMode (Mode: word);

где Mode – код текстового режима, который может принимать следующие значения:

- BW40=0 – 40х25 черно-белый режим для цветного адаптера,

- CO40=1 – 40х25 цветной режим для цветного адаптера,

- BW80=2 – 80х25 черно-белый режим для цветного адаптера,

- CO80=3 – 80х25 цветной режим для цветного адаптера,

- MONO=7 – 80х25 монохромный для черно-белого адаптера,

Например,

TextMode (СО80);

TextMode (7);

Перечисленные режимы действительны для двух наиболее распространенных в настоящее время адаптеров VGA и EGA.

Кроме данных режимов, для VGA/EGA-адаптеров допускаются их модификации, дающие возможность увеличит количество строк, выводимых на экран. Дело в том, что разрешающая способность этих адаптеров (то есть число пикселов по горизонтали и вертикали) позволяет строить символы в виде матриц пикселов 8х14 (для EGA) и 8х16 (для VGA). Иными словами, каждый символ строится из 14 или 16 рядов пикселов. Если же использовать для символов сокращенные матрицы размером 8х8 пикселов, то на экране можно разместить соответственно 43 или 50 строк символов, что дает возможность выводить на экран значительно больше информации.

Чтобы переключиться на уплотненный режим, необходимо подать в процедуру TextMode модифицированный параметр – значение требуемого режима, увеличенное на 256. Для удобства и большей наглядности в модуле имеется соответствующая константа:

- FONT8X8=256 – используется для загружаемого шрифта в режиме 80х43 или 80х50 с адаптерами VGA и EGA.

Рассмотрите пример переключения дисплея в режим цветного отображения с 43/50 строками:

TextMode (СО80+FONT8X8)

Примечание. Многие программные системы допускают возможность настройки на тот или иной режим. В частности, интегрированная среда Turbo Pascal позволяет устанавливать как обычный, так и уплотненный режимы дисплея (переключатель Screen sizes диалоговом окне Preferences – команда Options/Environment/Preferences).

При инициализации программы, использующей модуль CRT, значение текстового режима устанавливается автоматически, исходя из реальной аппаратуры компьютера.Текущее значение установленного режима всегда хранится в переменной LastMode из интерфейса модуля CRT. Даже в случае переключения в графический режим это значение сохраняется и может быть использовано для возврата в текстовый режим, например, TextMode (LastMode).

Рассмотрим подробнее процедуры и функции модуля CRT.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: