| 16.3.    Модуль CrtМодуль Crt содержит константы, переменные и подпрограммы, предназначенные для работы с консолью. В отличие от стандартного ввода-вывода, когда он осуществляется через операционную систему, подпрограммы модуля Crt работают с BIOS, и даже непосредственно с видеопамятью. При работе с экраном через модуль Crt весь экран разбивается на отдельные строки, а каждая строка - на отдельные позиции, в каждую из которых можно поместить один символ (в том числе и пробел). Таким образом, весь экран разбивается на отдельные неделимые прямоугольные элементы. Для каждого элемента можно задать цвет фона (задний план) и цвет символа (передний план). Кроме того, в случае необходимости символ можно сделать мерцающим. Вся эта информация (атрибуты символа) размещается в одном байте информации так, как показано на рис. 3. 
|  |  | Рис. 3. Атрибуты элемента экрана |  На этом рисунке буквой М обозначен бит мерцания (символ мерцает, если в этом бите установлена 1), буквами Ф - биты, в которые записывается код цвета фона (биты 4 - 6) и буквами С - биты, в которые помещается код цвета символа (биты 0-3). Модуль Crt позволяет работать не только со всем экраном, но и выделять в нем прямоугольные окна. Любое окно задается своим левым верхним углом и правым нижним углом. Эти углы, так же как и положение любого объекта на экране, задаются двумя координатами: X и Y. В качестве координаты X выступает номер позиции в строке (нумерация начинается с 1 и идет слева направо), а в качестве координаты Y - номер строки (нумерация начинается с 1 и идет сверху вниз). При работе в окне координаты отсчитываются от левого верхнего угла окна. При запуске программы выделенное окно совпадает по размеру со всем экраном. Если режим работы адаптера - 25 строк по 80 позиций, то координаты такого окна - (1,1) и (80,25). Список констант модуля приведен в табл. 13. Таблица 13. Константы модуля Crt 
| Имя | Значение | Назначение |  
| Коды режимов для процедуры TextMode |  
| BW40 BW80
 СО40
 СО80
 Font8x8
 Mono
 С40
 С80
 | 0 2
 1
 3
 256
 7
 СО40
 СО80
 | 40x25 ч/б для цветного адаптера 80x25 ч/б для цветного адаптера
 40x25 цветной для цветного адаптера
 80x25 цветной для цветного адаптера
 EGA/VGA 43 и 50 строк
 80x25 для монохромного адаптера
 Для совместимости с версией 3.0
 Для совместимости с версией 3.0
 |  Коды цветов | 
| Black Blue
 Green
 Cyan
 Red
 Magenta
 Brown
 LightGray
 DarkGray
 LightBlue
 LightGreen
 LightCyan
 LightRed
 LightMagenta
 Yellow
 White
 Blink
 | 0 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 128
 | Черный Синий
 Зеленый
 Голубой
 Красный
 Фиолетовый
 Коричневый
 Светло-серый
 Темно-серый
 Светло-синий
 Светло-зеленый
 Светло-голубой
 Розовый
 Светло-фиолетовый
 Желтый
 Белый
 Мерцание символа
 |  Цвета с кодами от 0 до 7 включительно можно использовать как для символов, так и для фона. Остальные цвета и код мерцания можно использовать только для символов. Перечень переменных модуля приведен в табл. 14. Таблица 14. Переменные модуля Crt 
| Имя | Значение | Назначение |  
| CheckBreak CheckEof
 CheckSnow
 DirectVideo
 LastMode
 TextAttr
 WindMin
 WindMax
 | Boolean Boolean
 Boolean
 Boolean
 Word
 Byte
 Word
 Word
 | Разрешение анализа Ctrl+Break Разрешение помещения признака конца файла
 Разрешение подавления "снега"
 Разрешение прямой адресации видеопамяти
 Текущий текстовый режим
 Текущие атрибуты текста
 Координаты левого верхнего угла окна
 Координаты правого нижнего угла окна
 |  Переменная CheckBreak управляет реакцией программы на комбинацию клавиш Ctrl+Break. Если эта переменная равна True, комбинация Ctrl+Break вызывает прекращение работы программы, в противном случае никакой реакции на эту комбинацию не происходит. Переменная CheckEof управляет размещением признака конца файла. Если эта переменная равна True, комбинация клавиш Ctrl+Z помещает в файл признак конца файла, в противном случае эта комбинация не оказывает никакого действия. Переменная CheckSnow разрешает (если равна True) или запрещает (в случае False) подавление "снега" на экране для видеоа- даптеров CGA. Переменная DirectVideo позволяет или запрещает непосредственную запись информации процедурами Write и WriteLn в видеопамять (в случае True - прямая запись в видеопамять, в случае False - запись через BIOS). В переменной LastMode помещается значение текущего текстового, режима, установленное процедурой TextMode (см. табл. 13). Переменная TextAttr содержит установленные атрибуты (цвета фона и символов) текста. В переменных WindMin и WindMax находятся координаты левого верхнего и правого нижнего углов окна. В каждой из этих переменных младший байт содержит Х-координату, а старший - Y-координату. Таблица 15. Процедуры и функции модуля Crt 
| Имя | Назначение |  
| Процедуры задания режимов работы |  
| TextMode | Задание текстового режима |  
| Процедуры управления цветом |  
| High Video LowVideo
 Norm Video
 TextBackground
 TextColor
 | Задание высокой яркости символов Задание малой яркости символов
 Задание исходной яркости символов
 Задание цвета фона
 Задание цвета символов
 |  
| Процедуры работы с экраном |  
| ClrEol ClrScr
 DelLine
 GotoXY
 InsLine
 Window
 | Удаление символов от курсора до конца строки Очистка экрана
 Удаление строки, в которой находится курсор
 Перемещение курсора в заданную позицию
 Добавление пустой строки на экране
 Задание размеров окна
 |  
| Функции работы с экраном |  
| WhereX WhereY
 | Текущая координата X курсора Текущая координата Y курсора
 |  
| Функции работы с клавиатурой |  
| KeyPressed ReadKey
 | Проверка нажатия клавиши Чтение символа с клавиатуры
 |  
| Процедуры управления звуком |  
| Sound NoSound
 | Включение звука Отключение звука
 |  
| Процедуры разнообразного назначения |  
| Delay AssignCrt
 | Задержка выполнения программы Связь текстового файла с устройством CRT
 |  Далее дается в алфавитном порядке краткое описание сначала процедур, а затем функций модуля. 
 
 |