Режим 13h

редактировать
256-цветная палитра VGA по умолчанию

Режим 13h - стандартный 256-цветный режим на VGA графическом оборудовании, представленном в 1987 году с IBM PS / 2. Он имеет разрешение 320 × 200 пикселей. Он широко использовался в компьютерных играх и программном обеспечении для анимации искусства / конца 1980-х и начала-середины 1990-х годов. «13h» относится к номеру режима в VGA BIOS. «H» означает шестнадцатеричный код.

. Режим 13h предоставляет программистам линейный блок размером 320x200 пикселей видеопамяти, где каждый байт представляет один пиксель. Это позволяет упростить программирование за счет доступа к другим полезным функциям оборудования VGA.

Учитывая соотношение сторон экрана с разрешением 320 × 200 для использования на дисплее 4: 3, в режиме 13h нет квадратных пикселей.

Содержание

  • 1 Технические детали
    • 1.1 Варианты
  • 2 Обозначения
  • 3 Ссылки
  • 4 Внешние ссылки

Технические подробности

Режим 13h - это что-то вроде любопытства, потому что VGA - это планарное устройство с точки зрения аппаратного обеспечения, которое не подходит для работы с крупной графикой. VGA имеет 256 КиБ видеопамяти, состоящих из 4 банков по 64 КиБ, известных как плоскости (или «карты» в документации IBM). Планарная структура памяти разбивает пиксели по горизонтали на группы по четыре. Для любого заданного байта в апертуре видеопамяти ПК на 64 КиБ можно получить доступ к четырем пикселям на экране, выбрав требуемую плоскость (и). Это более сложно для программиста, но позволяет получить доступ ко всей доступной видеопамяти и другим преимуществам (см. Mode X ).

Режим 13h, однако, позволяет программисту получать доступ к VGA в «коротком» (линейном) режиме, где каждый последовательный адрес в апертуре представляет собой последовательный пиксель на экране. Не нужно манипулировать плоскостями, чтобы выбрать правильные пиксели для изменения или чтения. Это достигается с помощью настройки VGA «Цепочка 4», в которой два младших бита 16-битного адреса апертуры используются для выбора плоскости для записи / чтения. В результате программист имеет простую модель доступа; Обратной стороной является то, что теперь доступны только 2 (16 КиБ) адресного пространства видеоплоскости (остальные 2 бита используются для выбора плоскостей), поэтому адресуются только 64 КБайт (4 × 16 КиБ). Верхние 48 КиБ каждой плоскости остаются неиспользованными в этом режиме.

В отличие от SVGA и более высоких значений глубины цвета, режим 13h, часть набора видеорежимов MCGA, имеет 18 битов цвета, по 6 на канал. Данные палитры не хранятся в памяти как таковые, а скорее изменяются, читаются и записываются вызовами портов ввода-вывода низкого уровня в регистры DAC.

Данные цветовой палитры часто копировались из портов низкого уровня по одному в место в памяти после данных экрана , чтобы цвета могли быть сохранены вместе с пикселями, которым они принадлежали. Снимок экрана в режиме 13h - это всего лишь 64000 байтов значений от 0 до 255, каждое из которых является индексом цвета из известной палитры из нескольких цветов. Если цветовая палитра перепутана или полностью неправильна, зеленый лист будет выглядеть синим или любым другим возможным цветом, в зависимости от того, для чего был установлен этот конкретный цвет, какой именно из 256.

Из-за способа фрагменты памяти выделяются в такой среде, байты по старшему адресу 0xA000, младшему адресу от 64000 до 64768, могут быть записаны без каких-либо негативных последствий. Это позволяет программисту сохранять дополнительные байты, 256 (цвета) × 3 (цветовые каналы) = 768 байтов, в конце файла снимка экрана. Их необходимо снова прочитать и записать в порт цвета, чтобы они изменились, когда загружается изображение, содержащее нижний колонтитул с информацией о цвете. Метод, используемый с этим, заключался в том, чтобы иметь глобальную палитру и согласовывать цвета из старой цветовой палитры с новой цветовой палитрой. Это означало изменение индекса каждого пикселя, чтобы он указывал на почти идеальное соответствие одного цвета со старого набора цветов на новый. У этого также были недостатки, поскольку иногда не хватало градиентов, и появлялись артефакты и тому подобное.

Не обязательно устанавливать графический режим через BIOS; есть возможность переключить графический режим в 32-битный защищенный режим, если немного посложнее. Он включает запись данных о размере в контроллер VGA.

Варианты

Альтернативный планарный 256-цветный режим доступен при отключении режима цепочки 4 (разъединение). Видеорежимы, созданные с помощью этой техники, вместе называются Mode X, хотя первоначально этот термин использовался для режима VGA, который также имел квадратные пиксели. Хотя эти режимы (вместе с очень многими другими возможными режимами VGA) не были специально задокументированы IBM, аппаратные функции VGA и возможности, используемые для их реализации, были задокументированы по крайней мере еще в 1988 году в Техническом справочнике аппаратного интерфейса PS / 2.

Обозначение

В языке ассемблера x86 режим вводится, когда AL равно 13h, AH равно 0 и выполняется BIOS INT 10h. Однако буква «h» иногда опускается для языков, которые не поддерживают этот способ записи; например, он известен как режим экрана 13 в QuickBasic и его дополнительных продуктах. QuickBASIC имеет свою собственную схему нумерации режимов экрана, и многие режимы экрана QuickBASIC имеют номера, которые отличаются от режимов BIOS, на которых они основаны. В C шестнадцатеричное 13 записывается как 0x13.

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-30 04:21:46
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте