TURBO PASCAL |
Новости
|
Текстовый режим экрана,структура видеопамятиТекстовые режимы были первыми, появившимися на экранах компьютеров. В свое время даже существовали мониторы вообще не имевшие возможности отображать графическую информацию (алфавитно-цифровые терминалы). В применении к IBM РС-совместимым компьютерам, о текстовых режимах можно говорить как о наиболее общих для всех моделей. Как следствие изучение их представляет достаточный интерес. С другой стороны, несмотря на свою простоту, текстовые режимы в IBM PC (под MS-DOS) обладают достаточно широкими возможностями, в частности, являются оконно-ориентированными. В данном контексте изучение и использование таких режимов может быть полезным с методических целей: без особой технической сложности в них реализуются оконные интерфейсы и, как следствие программы, управляемые событиями обретают наглядность. Наиболее часто используемым режимом является режим 03 и его модификации. Экран в данном режиме разделен на 25 строк и 80 столбцов, что позволяет адресовать 2000 ячеек, называемых знакоместами. На каждом знакоместе может быть отображен один из 256 символов, образы которых содержатся в таблицах знакогенератора. Каждый символ таким образом кодируется одним байтом. Как правило кодирование производится в соответствии с одной из таблиц ASCII. Преобразование однобайтового кода символа в его изображение производится аппаратно. Коды символов, отображаемых в каждый момент на экране хранятся в видеопамяти. Видеопамять в текстовом режиме с точки зрения программиста представляет собой часть адресного пространства ЦВМ, начинающуюся с адреса B800:000 и кончающуюся B800:7FFF. Так как на описание одного знакоместа требуется 2 байта (код символа и атрибут) существует возможность хранить (и последовательно отображать на экране) до 8 страниц (отдельных изображений). Как упоминалось выше содержимое каждого знакоместа описывается не только кодом символа, но и атрибутом. Атрибут характеризует цвет, которым отображаются символ и фон за ним. В видеопамяти коды символов располагаются по четным адресам, а атрибуты - по нечетным. Вывод символа на экран как следствие вышесказанного производится записью пары байт в некоторое место видеопамяти, определяемое активной страницей и положением знакоместа на ней. Делается это либо с помощью прямого обращения либо с использованием функций BIOS или DOS. Такого рода вывод достаточно утомителен с точки зрения высокоуровневого программирования; вследствие этого, как уже упоминалось в ЯП высокого уровня включают механизмы ввода-выода. Цвета и окна,или сделаем программы красивымиСтандартно Pascal предполагает работу с текстовым экраном с помощью процедур и функций модуля CRT. Однако не запрещается работа с видеопамятью напрямую. Один из вариантов прямых обращений к видеопамяти реализован в модуле Direct_V. Вторым способом является размещение двумерного массива по абсолютному адресу начала видеопамяти. Главным недостатком прямого доступа является отсутствие каких бы то ни было функций работы с окнами, позиционирования курсора и т.п., который приходится реализовывать непосредственно программисту. С другой стороны, программист может реализовать те же функции более эффективно, чем программисты Borland International (в настоящее время - часть Inprise Corporation). Модуль CRT содержит следующие процедуры и функции для работы с текстовым экраном (более подробную информацию можно получить из справочной системы, int-файла или исходного текста модуля).
Приведенные процедуры и функции позволяют организовывать различные текстовые интерфейсы, в том числе и многооконные. Главным достоинством данного модуля является его полная согласованность с процедурами Write(ln) и Read(ln), что позволяет не заботится о выводе только в пределах окна и подобных им.
|
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |