Книга Код. Тайный язык информатики, страница 87. Автор книги Чарльз Петцольд

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Код. Тайный язык информатики»

Cтраница 87

Когда дисплей необходимо подключить к компьютеру, его неудобно представлять в виде гибрида аналогового и цифрового устройства. Его легче рассматривать как полностью цифровое устройство. С точки зрения компьютера видеоизображение удобнее отобразить как прямоугольную сетку с дискретными точками, называемыми пикселами (pixel от picture element — «элемент изображений»).

Полоса пропускания видеодисплея ограничивает количество пикселов в горизонтальной строке развертки. Я определил полосу пропускания как скорость, с которой видеосигнал может измениться от уровня черного до уровня белого, а затем снова до уровня черного. Полоса пропускания телевизоров, равная 4,2 мегагерца, допускает создание двух пикселов 4,2 миллиона раз в секунду. Если разделить произведение 2 × 4 200 000 на 15 750 (частота строчной развертки), получим 533 пиксела в каждой строке. Однако примерно треть этих пикселов оказывается невидимой из-за их нахождения на дальних концах изображения или из-за обратного хода луча по горизонтали. Таким образом, каждая строка — это примерно 320 пикселов.

Точно так же по вертикали не насчитывается 525 пикселов. Некоторые из них теряются в верхней и нижней части экрана и во время обратного хода луча по вертикали. Кроме того, не следует полагаться на чересстрочную развертку при использовании телевизора в качестве дисплея. Таким образом, реальное количество пикселов по вертикали равно приблизительно двумстам.

Итак, можно сказать, что разрешение примитивного видеоадаптера, подключенного к обычному телевизору, составляет 320 пикселов по горизонтали на 200 пикселов по вертикали, или 320 × 200.

Код. Тайный язык информатики

Чтобы определить общее количество пикселов в этой сетке, можете подсчитать их или просто перемножить числа 320 и 200, получив 64 тысячи пикселов. В зависимости от того, как вы сконфигурировали видеоадаптер (о чем расскажу чуть позже), каждый пиксел может быть либо черным, либо белым (черно-белое изображение), либо обладать определенным цветом (цветное изображение).

Предположим, нам нужно отобразить на этом дисплее некоторый текст. Сколько текста может на нем уместиться?

Очевидно, все зависит от того, сколько пикселов используется для отображения каждого текстового символа. Далее представлен один из возможных подходов, при котором для каждого символа используется сетка 8 × 8 (64 пиксела).

Код. Тайный язык информатики

Эти символы соответствуют кодам ASCII с 20h по 7Fh. Коды ASCII с 00h до 1Fh отведены под неотображаемые символы.

В приведенном примере каждый символ соответствует не только 7-битному ASCII-коду, но и 64 битам на экране, определяющим его внешний вид. Эти 64 бита тоже можно рассматривать в качестве своеобразного кода.

При таком способе представления символов вы можете уместить на видеодисплее с разрешением 320 × 200 пикселов 25 строк по 40 символов. Этого достаточно, например, для короткого стихотворения Эми Лоуэлл.

Код. Тайный язык информатики

Видеоадаптер потребляет некоторое количество оперативной памяти для хранения содержимого дисплея, а микропроцессор должен иметь возможность записывать данные в эту память для изменения изображения на этом дисплее. Удобнее всего, когда память RAM является частью общего адресного пространства процессора. Сколько же оперативной памяти потребуется видеоадаптеру, который я описываю?

Это непростой вопрос! Значение может варьироваться от 1 до 192 килобайт!

Сначала оценим нижний предел. Один из способов уменьшения требований к памяти заключается в том, чтобы ограничить возможности адаптера только отображением текста. Мы уже выяснили, что можем отобразить 25 строк по 40 символов, или 1000 символов. В памяти RAM на видеоплате должны храниться только 7-битные ASCII-коды соответствующих символов. Тысяча 7-битных значений — приблизительно 1024 байт, или один килобайт.

Такая плата видеоадаптера также должна оснащаться генератором символов, содержащим точечные шаблоны всех символов ASCII — вроде тех, которые были показаны на одном из предыдущих изображений. Как правило, генератор символов — это постоянное запоминающее устройство, или ПЗУ (Read-Only Memory, ROM), интегральная схема, изготовленная таким образом, что в ответ на обращение к конкретному адресу всегда выдаются одни и те же данные. В отличие от памяти RAM, ПЗУ не предусматривает никаких сигналов для ввода данных.

Память ПЗУ можно считать схемой, преобразующей один код в другой. ПЗУ, в котором хранятся точечные шаблоны (8 × 8 пикселов) для 128 символов ASCII, может предусматривать семь адресных входов (для ASCII-кодов) и 64 выхода для данных. Таким образом, ПЗУ преобразует 7-битный ASCII-код в 64-битный, определяющий внешний вид символа. Однако наличие 64 выходов сделали бы чип слишком громоздким! Гораздо удобнее использовать десять адресных входов и восемь выходов. Семь адресных сигналов указывают на конкретный ASCII-символ. (Эти семь битов адреса подаются с выходов RAM на видеоплате.) Другие три адресных сигнала определяют строку. Например, биты адреса 000 соответствуют верхней строке точечного шаблона, а биты 111 — нижней строке, восемь выходных битов — восьми пикселам каждой строки.

Предположим, что ASCII-код равен 41h. Этот код сопоставим с заглавной буквой A. Ее точечный шаблон состоит из восьми строк по восемь бит. В следующей таблице приведены 10-битные адреса (пробел отделяет ASCII-код от кода строки) и сигналы на выходах для данных, соответствующие заглавной букве A.

Адрес

Сигнал на выходе

1000001 000

00110000

1000001 001

01111000

1000001 010

11001100

1000001 011

11001100

1000001 100

11111100

1000001 101

11001100

1000001 110

11001100

1000001 111

00000000

Вы видите букву A, нарисованную единицами на фоне нулей?

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

Если плата видеоадаптера не ограничивается воспроизведением текста, она называется графической. Записывая данные в оперативную память графической платы, микропроцессор может выводить на экран изображения, а также отображать текст разных размеров и стилей. Графическим платам требуется больше памяти, чем текстовым. При разрешении 320 × 200 изображение состоит из 64 тысяч пикселов. Если каждый пиксел соответствует одному биту памяти, такой плате требуется 64 тысячи бит, или 8000 байт, оперативной памяти. Это, конечно, абсолютный минимум. То, что один бит памяти равен одному пикселу, позволяет использовать только два цвета, например черный и белый. Значение ноль бит может соотноситься с черным пикселом, а один бит — с белым.

Вход
Поиск по сайту
Ищем:
Календарь
Навигация