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

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

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

Cтраница 88

Разумеется, черно-белые телевизоры отображают не только черные и белые пикселы. Они также способны воспроизводить множество оттенков серого. Чтобы графическая плата могла передать оттенки серого, для каждого пиксела обычно отводится целый байт памяти RAM, причем значение 00h соответствует черному цвету, FFh — белому, а все промежуточные значения — разнообразным оттенкам серого. Видеоплате, отображающей 256 оттенков серого на дисплее с разрешением 320 × 200, требуется 64 тысячи байт памяти. Это почти все адресное пространство одного из 8-битных микропроцессоров, о которых я говорил ранее!

Использование полноцветного режима предполагает выделение трех байтов на каждый пиксел. Если вы рассмотрите экран телевизора или компьютерного дисплея через увеличительное стекло, то обнаружите, что каждый цвет создается различными комбинациями основных цветов: красного, зеленого и синего. Чтобы отобразить весь диапазон, требуется по одному байту для указания интенсивности каждого из трех основных цветов, то есть 192 тысячи байт памяти RAM. (В последней главе я подробно остановлюсь на графике.)

Количество различных цветов, которые способен отобразить видеоадаптер, определяется количеством битов, выделенных для каждого пиксела. Это соотношение может показаться знакомым, поскольку в нем используется степень двойки:

Количество цветов = 2 количество битов на пиксел.

Разрешение 320 × 200 пикселов максимально для типичного телевизора. Именно поэтому мониторы, созданные специально для компьютеров, имеют гораздо более широкую полосу пропускания, чем телевизионные экраны. Первые мониторы, которые продавались с компьютером IBM PC в 1981 году, могли отображать 25 строк по 80 символов. Именно такое количество символов воспроизводилось дисплеями CRT, которые использовались с большими и дорогими мейнфреймами IBM. Для компании IBM число 80 имеет особое значение. Почему? Именно столько символов умещалось на перфокарте IBM! Действительно, поначалу дисплеи CRT, подключенные к мейнфреймам, часто использовались для просмотра содержимого перфокарт. Даже сегодня кое-кто продолжает называть строки дисплея, отображающего только текст, картами.

На протяжении многих лет видеоадаптеры совершенствовались в плане разрешения и цветопередачи. Важная веха была достигнута в 1987 году, когда в персональных компьютерах IBM серии Personal System/2 и Apple Macintosh II начали применяться видеоадаптеры, способные отображать 640 пикселов по горизонтали и 480 пикселов по вертикали. С тех пор этот показатель — минимальное стандартное разрешение для видео.

Это может показаться невероятным, но причина важности разрешения 640 × 480 связана с работой Томаса Эдисона! Примерно в 1889 году, когда Эдисон и его инженер Уильям Диксон работали над кинокамерой «Кинетограф» и проектором «Кинетоскоп», они решили сделать так, чтобы ширина движущегося изображения на треть превосходила его высоту. Соотношение ширины и высоты изображения называется характеристическим отношением. Соотношение, которое выбрали Эдисон и Диксон, обычно выражается как 1,33 : 1, или 4 : 3. На протяжении более 60 лет это соотношение использовалось при производстве кинофильмов и конструировании телевизоров. Только в начале 1950-х голливудские студии начали снимать фильмы в широкоэкранном формате, что и составило конкуренцию телевидению благодаря выходу за рамки соотношения 4 : 3.

Большинство компьютерных мониторов (и телевизоров) имеет характеристическое отношение 4 : 3 [29], в чем вы можете убедиться с помощью линейки. Разрешение 640 × 480 также соответствует отношению 4 : 3. Это значит, что горизонтальная линия, состоящая, например, из 100 пикселов, имеет ту же физическую длину, что и вертикальная линия из 100 пикселов. Таким образом, пикселы являются квадратными, что считается предпочтительным для компьютерной графики.

Видеоадаптеры и мониторы практически всегда имеют разрешение 640 × 480, однако они также способны работать в видеорежимах с разрешением 800 × 600, 1024 × 768, 1280 × 960 и 1600 × 1200.

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

Каждая клавиша на клавиатуре, по сути, простой переключатель. При нажатии клавиши переключатель замыкается. Первые клавиатуры напоминали пишущую машинку и состояли всего из 48 клавиш; клавиатура современных персональных компьютеров часто насчитывает более 100 клавиш.

Клавиатура, подключенная к компьютеру, должна предусматривать некоторое оборудование, предоставляющее уникальный код для каждой нажатой клавиши. Вы можете предположить, что этот код является ASCII-кодом, соответствующим символу на клавише. Однако разрабатывать аппаратные средства, определяющие ASCII-код, непрактично и нежелательно. Например, клавиша A может соответствовать ASCII-коду 41h или 61h в зависимости от того, нажимается ли вместе с ней клавиша Shift. Кроме того, на современных компьютерных клавиатурах есть множество клавиш, которые не соответствуют символам ASCII. Код, предоставляемый аппаратным обеспечением клавиатуры, называется скан-кодом. Для определения соответствия нажатой клавиши какому-либо ASCII-коду используется небольшая компьютерная программа.

Чтобы схема аппаратного обеспечения клавиатуры не стала чересчур запутанной, будем считать, что она состоит всего из 16 клавиш. При нажатии клавиши аппаратное обеспечение должно сгенерировать 4-битный код, принимающий двоичные значения в диапазоне от 0000 до 1111.

Аппаратное обеспечение клавиатуры содержит уже знакомые нам компоненты.

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

Шестнадцать клавиш представлены в виде простых переключателей в нижней левой части схемы. Четырехбитный счетчик многократно и быстро перебирает 16 кодов, соответствующих клавишам. Он должен делать это быстрее, чем человек нажимает и отпускает клавишу.

Выходные сигналы 4-битного счетчика подаются на входы Sel дешифратора «2 на 4» и селектора «4 на 1». Если не была нажата ни одна клавиша, ни один из входов селектора не будет равен 1. Следовательно, и выход не будет равен 1. Однако если нажата конкретная клавиша, то при соответствующем ей значении выходного сигнала 4-битного счетчика выход селектора будет равен 1. Например, при нажатии второй сверху и справа клавиши и выходном сигнале счетчика 0110 выход селектора будет равен 1.

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

Это код, соответствующий данной клавише. Когда клавиша нажата, ни одно другое значение выходного сигнала счетчика не приведет к тому, что выход селектора станет равным 1. Для каждой клавиши предусмотрен собственный код.

Если клавиатура состоит из 64 клавиш, вам понадобится 6-битный скан-код и 6-битный счетчик. Вы можете организовать клавиши в массив 8 × 8, используя дешифратор «3 на 8» и селектор «1 на 8». Если клавиатура имеет от 65 до 128 клавиш, потребуется 7-битный код. Клавиши можно организовать в массив 8 × 16 и использовать дешифратор «4 на 16» и селектор «8 на 1» (или дешифратор «3 на 8» и селектор «16 на 1»).

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