Глава 4. Вывод на терминал.

Раздел 4. Вывод точечной графики.

Цветной графический адаптор имеет три графических режима, PCjr - шесть, а EGA - семь. Kак устанавливать эти режимы показано в {4.1.2}. Требования к размеру памяти существенно отличаются для различных режимов, в зависимости от разрешения экрана и числа используемых цветов. В своих улучшенных графических режимах EGA использует память дисплея совсем по-другому, чем остальные видеосистемы, но он точно эмулирует их использование памяти при работе в трех общих режимах.

Сначала рассмотрим цветной адаптор и систему PCjr. Два цвета (черный и белый) требуют только один бит памяти для каждой точки на экране. Четыре цвета занимают 2 бита, а 16 цветов - 4 (8-цветные режимы не используются, поскольку три бита, требующиеся для их представления нельзя удобно разместить в 8 бит байта). Для всех режимов по вертикали имеется 200 точек. Hизкое разрешение (используемое только на PCjr) использует 160 точек по горизонтали, среднее разрешение - вдвое больше (320 точек) и высокое разрешение - еще вдвое больше (640 точек). Число килобайт памяти, требуемое для каждого режтима приведено в {4.5.3}.

В двух- и четырехцветном режимах PCjr имеет выбор любого из 16 доступных цветов. Цветной адаптор более ограничен. В двухцветном режиме он всегда ограничен белым и черным, а в четырехцветном режиме только цвет фона может выбираться из 16 цветов, в то время как основной цвет должен браться только из двух предопределенных палетт. Палетта 0 содержит коричневый, зеленый и красный цвета, а палетта 1 - циан, магента и белый.

В отличие от текстовых данных в режимах 4-6 и 8-A графические данные разбиты на видеостранице на части. В большинстве режимов данные разбиваются на две части, при этом первая половина буфера содержит данные для четных строк экрана, а вторая половина данные для нечетных строк (строки нумеруются, начиная с верха экрана вниз). Однако в 16-цветных режимах PCjr буфер размером 32K делится на четыре части, каждая из которых содержит данные для каждой четвертой строки.

В 4-цветных режимах первый байт буфера содержит информацию о самых левых точках строки 0, причем старший бит относится к самой левой точке. Следующий байт содержит информацию о следующем сегменте строки и т.д. Для всей строки требуется 80 байт. 81-й байт содержит информацию о левом конце строки 2. В 16-цветных режимах картина приблизительно такая же, но для каждой строки требуется 160 байт и каждая часть буфера содержит данные только для вдвое меньшего числа строк. Для цветного графического адаптора четные строки занимают память со смещениями от 0000 до 1F3FH, а нечетные - от 2000H до 3F3FH. Промежуток между 1F3FH и 2000H игнорируется.

Для режимов экрана EGA от DH до 10H память организована совсем по-другому. Она разделяется на одну, две или четыре битовые плоскости, каждая из которых организована так же, как для черно-белого режима высокого разрешения, описанного выше: когда байт данных посылается в определенный адрес видеобуфера, то каждый бит соответствует точке на экране, причем они описывают горизонтальный сегмент строки и бит 7 соответствует самой левой точке. Записываются четыре таких битовых плоскости, соответствующих одним и тем же адресам в видеобуфере. Это отводит каждой точке 4 бита, что позволяет описывать 16 цветов. Hа рис. 4-4 показаны различные схемы распределения памяти.

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


<~-4.3.5 Сводка данных для описания символов.
Содержание
4.4.1 Установка цветов для точечной графики.-~>

Сайт управляется системой uCoz