Растровое прерывание
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2016 г. ) |
Растровое прерывание (также называемое горизонтальным пустым прерыванием ) — это сигнал прерывания в устаревшей компьютерной системе, который используется для синхронизации отображения. системы Обычно, хотя и не всегда, он генерируется графическим чипом , когда строки сканирования кадра готовятся к отправке на монитор для отображения. Самая простая реализация растрового прерывания — вертикальное пустое прерывание .
Такое прерывание обеспечивает механизм изменения графических регистров в середине кадра, поэтому они имеют разные значения выше и ниже точки прерывания. Это позволяет, например, одноцветному объекту, такому как фон или граница экрана, иметь несколько горизонтальных цветных полос . Или переместить аппаратный спрайт , чтобы создать иллюзию того, что спрайтов больше, чем поддерживает система. Ограничением является то, что изменения влияют только на часть дисплея ниже прерывания. Они не позволяют использовать больше цветов или больше спрайтов в одной строке сканирования.
Современные операционные системы с защищенным режимом обычно не поддерживают растровые прерывания, поскольку доступ к аппаратным прерываниям для непривилегированных пользовательских программ может поставить под угрозу стабильность системы. Поскольку их наиболее важный вариант использования, мультиплексирование аппаратных спрайтов, в настоящее время больше не актуален, и не существует современного преемника растровых прерываний.
Системы, поддерживающие растровые прерывания
[ редактировать ]Некоторые популярные домашние компьютеры и игровые консоли включали графические чипы, поддерживающие растровые прерывания, или имели функции, которые можно было объединить для работы как растровые прерывания. Следующий список не является исчерпывающим.
Astrocade (два нестандартных чипа, 1977 г.)
[ редактировать ]Bally Astrocade поддерживал горизонтальное пустое прерывание для выбора четырех цветов экрана из палитры из 256 цветов. Astrocade не поддерживала аппаратные спрайты.
8-битные компьютеры Atari (чип ANTIC, 1979 г.)
[ редактировать ]Чип ANTIC , используемый 8-битными компьютерами Atari, включает прерывания списка отображения (DLI), которые запускаются при отрисовке дисплея. [1] [2] Сам чип ANTIC достаточно мощный и по своей сути способен выполнять множество функций, для дублирования которых в других системах требуются растровые прерывания. ANTIC может смешивать несколько графических режимов на экране, отображать горизонтальную и вертикальную графику с переразверткой, а также осуществлять точную прокрутку выбранных горизонтальных областей. DLI в Atari обычно используются для добавления дополнительного цвета на дисплей и повторного использования графических элементов Player/Missile.
ColecoVision и MSX (чип TMS9918, 1979 г.)
[ редактировать ]ColecoVision , 8-битная игровая консоль , выпущенная в 1982 году, а также MSX , стандартизированный домашний компьютер 1983 года, использовали Texas Instruments TMS9918 . Он включает в себя источник «вертикальных прерываний» для изменения положения аппаратных спрайтов на экране.
Commodore 64 (чип MOS Technology VIC-II, 1982 г.)
[ редактировать ]C64 имеет и C128 VIC -II гибкую систему растровых прерываний. Прерывания растра и вмешательство ЦП необходимы для повторного использования спрайтов на экране, смешивания графических режимов и выборочной прокрутки областей экрана. поддерживаются Plus/4 и C16 TED Растровые прерывания также .
Nintendo Entertainment System (чип PPU, 1983 г.)
[ редактировать ]Nintendo Entertainment System не Графический чип PPU поддерживает настоящие растровые прерывания — прерывание можно настроить на запуск во время интервала вертикального пробела , но не на любой произвольной строке сканирования — вместо этого требуется опрос «флага попадания», который указывает, когда рисовался первый спрайт. Хотя ранним играм, таким как Super Mario Bros. , Castlevania и The Legend of Zelda, удалось обеспечить эффективную прокрутку с разделенным экраном с помощью этого метода, он требует большого количества ресурсов ЦП. Некоторые более поздние картриджи включали в себя схему MMC (чаще всего чип MMC3 от Nintendo), которая отслеживала адрес PPU и линии данных и генерировала растровые прерывания.
IBM PCjr (массив видеоворот, 1984 г.)
[ редактировать ]IBM PCjr , использующий графический чип Video Gate Array , поддерживал «прерывание вертикального обратного хода», реализованное как IRQ5. [3] Позже, в 1984 году, IBM представила графический стандарт EGA , который также поддерживал прерывание вертикальной трассировки, но был реализован как XT IRQ2 и отключен по умолчанию. [4] Однако не все карты EGA реализовали эту функцию, и лишь очень немногие программы, использующие режимы EGA, полагались на нее.
Современные графические процессоры имеют IRQ, зарегистрированный на главном процессоре. Важно отметить, что это не вертикальное и не горизонтальное «пустое прерывание» и оно обрабатывается драйвером устройства видеокарты.
MSX2 (Ямаха V9938, 1985 г.)
[ редактировать ]Компьютеры MSX2 оснащены графическим чипом Yamaha V9938 , который, как и NES, поддерживает «вертикальные пустые прерывания», но требует опроса «горизонтальных пустых прерываний». Его обычно использовали для создания разделенных экранов, смешивания нескольких видеорежимов на одном экране и для увеличения количества уникальных цветов на экране сверх официальной спецификации. Яркими примерами использования являются серия Aleste от Konami и Space Manbow .
Друг (Медная фишка, 1985)
[ редактировать ]Компьютеры Amiga оснащены специальным сопроцессором Copper , который предназначен для обслуживания растровых прерываний. Коппер запускает программу с простыми инструкциями, предписывающую ему дождаться определенной вертикальной линии сканирования и положения горизонтального луча, а затем обновить содержимое аппаратного регистра пользовательского чипа. Обычно это используется для изменения параметров отображения, таких как смешивание режимов отображения, повторное использование спрайтов или изменение регистров цвета, но также может использоваться для запуска прерывания ЦП.
X68000 (чип VSOP + VINAS, 1987 г.)
[ редактировать ]X68000 , 16-битный домашний компьютер , продаваемый в Японии, имеет гибкую систему растровых прерываний для мультиплексирования аппаратных спрайтов.
Game Boy (чип PPU, 1989 г.)
[ редактировать ]Game Boy PPU : поддерживает четыре растровых прерывания [5] его можно настроить на срабатывание в начале указанной строки развертки, в конце строк развертки (во время горизонтального гашения ), в начале всех строк развертки или в начале вертикального гашения . Его недостатком является то, что для первых трех используется один и тот же обработчик прерываний , что требует использования «диспетчерского» кода, если используется более одного условия.
Ссылки
[ редактировать ]- ^ Де Ре Атари Атари, Инк. 1982 год
- ^ Уотсон, Алан (1982). «Введение в отображение прерываний списка» . Вторая книга COMPUTE! для Atari .
- ^ Технический справочник IBM PCjr . Международная корпорация бизнес-машин. Ноябрь 1983 г. с. 108.
- ^ Руководство по адаптеру расширенной графики IBM (PDF) . Международная корпорация бизнес-машин. п. 72. Архивировано (PDF) из оригинала 24 мая 2024 г. Проверено 29 июля 2024 г.
- ^ «Видеодисплей» . GBDev Wiki . Проверено 20 октября 2017 г.