Программирование 2d ускорения на 8514/A в связке с ATI Match 8
Сегодня я расскажу о практической работе с одним из первых графическим ускорителей 8514/A. на базе чипов ATI и IBM.
1. Краткий обзор карты
реклама
На момент своего выхода карта в своей наиболее совершенной конфигурации поддерживала разрешение 1024х768 с 256 цветами и имела на борту целый мегабайт памяти. Для работы карта использовала шину ISA. Вывод осуществлялся на монитор MDA, EGA или VGA.
На момент выхода версии карты от ATI в 1990 году уже было выпущено много карт с чипом 8514/A от других производителей, однако особенностью карты от ATI было использование в паре с чипом 8514/A своего 2d ускорителя ATI Mach 8. Оба чипа использовали цифровой интерфейс для обмена данными друг с другом.
реклама
На изображении печатной платы представленной выше, слева внизу распаяны 512кб памяти,над ними в слотах установлено еще столько же памяти. Чип без маркировки снизу по центру это IBM 8514/A. Над которым распаян 2d ускоритель от ATI.
Кстати, цена на подобную карту в то время была такой же как сейчас на Nvidia 4080 RTX - 1290 $ и это только за базовую версию.
реклама
2. Программирование ускорителя 2d графики.
Перейдем пожалуй, к самой интересной части данной статьи,а именно к вопросу о том как заставить это чудо ускорить вывод линий, прямоугольников и их закраску, ускорение операций BitBLT.
Вот здесь и возникает главная проблема. Особенностью карты является отсутствие возможности работать с регистрами напрямую. Все программирование карты осуществляется через специальный интерфейс,что само по себе медленнее чем прямой доступ к железу. К преимуществам данного подхода можно отнести не зависимость от железа то есть в качестве 2d ускорителя в паре с чипом 8514/A может работать любой чип например чип Texas Instruments TMS340x0 также использовался другими производителями в аналогичных картах.
Однако ,к счастью для работы с интерфейсом на просторах интернета нашлась документация от IBM.
реклама
Из этой документации следует, что плата поддерживает команды горизонтальной (начинаются с буквы H) и вертикальной (начинаются с буквы V) отрисовки примитивов, а также позволяет установить их цвет и цвет фона.
Теперь, когда есть инструмент для работы можно приступить к написанию кода.
Потратив некоторое время получилась следующая программа на языке C.
В результате трудов, после успешной компиляции и запуска программы на мониторе радостно заплясали разноцветные треугольники. Без ускорителя один такой треугольник рисовался бы минуту. А с ускорителем за секунду несколько тысяч получается вывести на дисплей.
3.Вместо итогов
Работая над программой для использования 2d ускорения графики я осознал,что появление 2d ускорителей было продиктовано бизнес необходимостью. Ведь если бы выводом изображения занимался центральный процессор, то для отрисовки открытия нового окна, например в windows 95 с процессором 286 уходило бы пара минут и говорить о продуктивной работе в Word, Excel или Paint не представлялось возможным. Поэтому можно сделать вывод что прогресс в железе диктуется бизнес необходимостью.
Надеюсь, вам понравился небольшой экскурс в историю графики.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила