Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Графический адаптер 8514/a фирмы IBM

Вывод текстов

В адаптере 8514/A вывод текстов может осуществляться в двух режимах, которые можно условно назвать графическим и алфавитно-цифровым. В графическом режиме символы могут задаваться либо битовым образом, либо в векторном виде и могут размещаться в произвольном месте экрана. Символы, представленные битовыми образами могут, быть как монохромными, так и цветными. При выводе на экран символьной информации, так же как и при выводе изображений, допускается применение операций смешивания. Если символы представлены в виде битовых образов, предоставляется возможность их пропорционального размещения на экране. Расстояние между символами задается специальной таблицей.

Не допускается поворот символов, их усечение или какие-либо другие преобразования над ними, что предполагает необходимость использования нескольких типов шрифтов, задаваемых либо в векторном виде, либо битовыми образами. Поворот символов в форме битовых образов представляет собой трудную задачу, в связи с чем мало кто ожидает наличие такой возможности в адаптерах класса 8514/A. Что касается шрифтов в векторной форме, то они специально создаются с той целью, чтобы символы можно было поворачивать на произвольный угол и масштабировать. Отсутствие в адаптере 8514/A возможности выполнения подобных действий над символами в векторной форме является существенным недостатком и делает наличие такого представления практически не нужным.

В алфавитно-цифровом режиме весь экран разбивается на ячейки, называемые знакоместами, в которые и помещаются выводимые символы. Этот режим используется для моделирования алфавитно-цифровых дисплеев, а также для быстрого вывода текстов на экран. В один и тот же момент времени могут быть активными до четырех 256-символьных шрифтов, т.е. каждый отображаемый символ может быть выведен на экран с использованием любого из этих шрифтов. Ввиду того, что при выводе символа допускается применение операций смешивания после чего считывание символа с экрана становится невозможным, символы могут только выводиться на экран и не могут быть с него считаны.

Символы на вход адаптера поступают либо в виде пары <атрибут,код символа> (как это делается в цветном графическом адаптере - CGA) или в 4-байтовом формате IBM 3270. Использование 4-байтового формата позволяет осуществлять независимый выбор шрифта для каждого символа и обеспечивает более широкие возможности управления выводом. Для обоих форматов сами шрифты хранятся в основной памяти ПЭВМ и управление их местоположением должно осуществляться прикладной программой. Адаптер не сохраняет информацию о выводимом на экран символе. Для него вывод символа на экран представляется просто операцией рисования, в связи с чем изменение цветов символов или шрифта после вывода символа на экран не оказывает на его изображение никакого влияния. Для изменения изображения символа на экране необходимо повторно выполнить операцию вывода этого символа на экран.

Другие операции

Адаптер 8514/A обеспечивает выполнение целого ряда других операций, используемых при разработке прикладного программного обеспечения. Аппаратура позволяет выполнять операцию "вырезания" прямоугольной области изображения на экране, когда при выводе изображения на экране появляются только пикселы, лежащие внутри заданной прямоугольной области экрана. Если задан режим вырезания, при интерпретации некоторой команды, аппаратурой генерируются все пикселы определяемые значениями параметров команды, а выводятся на экран только пикселы из заданной прямоугольной области. Поэтому если такой прямоугольник мал, вывод будет осуществляться достаточно медленно. В этом случае рекомендуется задавать такие значения параметров в команде вывода, чтобы число избыточных действий по генерации пикселов сводилось к минимуму.

Перечень функций дисплейного адаптера 8514/A
ФункцияНазначение
HLINEПровести ломаную, заданную абсолютными координатами
HCLINEПровести ломаную, заданную абсолютными координатами, начиная с текущей позиции на экране
HRLINEПровести ломаную, заданную в относительных координатах, начиная с точки, заданной абсолютными координатами
HRCLINEПровести ломаную, заданную в относительных координатах, начиная с точки, определяемой текущей позицией на экране
HBARНачать закрашиваемую область
HEARЗакончить закраску области
HRECTВывод закрашенного прямоугольника
HMRKВывод маркера в заданной абсолютной позиции
HCMRKВывод маркера в текущей позиции
HBBWЗадание абсолютной позиции начала области, в которую будет производиться копирование
HCBBWЗадание относительной позиции начала области, в которую будет производиться копирование
HBBRЗадание абсолютной позиции начала копируемой области
HBBCHNКопирование из/в основную память
HBBCКопирование области дисплейной памяти в дисплейную память
HOPENИнициализировать интерфейс дисплейного адаптера
HCLOSEПрекратить работу интерфейса дисплейного адаптера
HCSPУстановить текущую позицию экрана в позицию, заданную абсолютными координатами
HQCPЗапрос к адаптеру на получение координат текущей позиции
HQDFPALЗапрос к адаптеру на получение цветов текущей палитры
HINITИнициализация буфера состояния задачи
HSYNCУстановить параметры адаптера в соответствии со значениями из буфера состояния задачи
HINTОжидание вертикального обратного хода луча
HSMODEУстановить режим работы дисплейного адаптера
HQMODEОпределение режима работы дисплейного адаптера
HQMODESОпределение всех режимов, в которых может использоваться дисплейный адаптер
HEGSОчистка экрана
HSGQЗадание типа выводимой линии
HSHSЗадание прямоугольной области вывода на экране
HLDPALЗагрузка цветовой палитры
HSPALСохранение цветовой палитры
HRPALВосстановление цветовой палитры
HSLPCСохранение образца для вывода линии
HRLPCВосстановление образца вывода линии
HSBPУправление битовыми плоскостями (маскирование, разрешение отображения)
HQCOORDОпределение типа координат
HSCOORDЗадание типа координат
HESCПрекратить работу адаптера
HQDPSОпределить размер буфера состояния задачи
HSMARKУстановить форму маркера
HSPATTЗадание образца закраски
HSPATTOУстановить точку начала закраски для текущего образца
HSLTЗадание текущего типа линии
HSLWЗадание текущей толщины линии
HSCOLЗадание текущего цвета вывода
HSBCOLЗадание текущего цвета фона
HSMXРежим выполнения операции вывода на экран (операции смешивания)
HSCMPУстановить регистр сравнения цвета
HSCSЗадание шрифта
HCHSTВывести текст с заданной абсолютной позиции
HCCHSTВывести текст, начиная с текущей позиции
HXLATEНазначить таблицу индексов цветов для текста
ABLOCKMFIВывод символов в "алфавитно-цифровом" режиме
ABLOCKCGAВывод символов в "алфавитно-цифровом" режиме в формате CGA
AERASEОчистка знакоместа
ASCROLLСкроллинг
ACURSORВ "алфавитно-цифровом" режиме установить позицию курсора
ASCURУстановить форму курсора "алфавитно-цифрового" режима
ASFONTЗадание шрифта для "алфавитно-цифрового" режима
AXLATEЗадание таблицы цветов символов в "алфавитно цифровом режиме

В 16-цветном режиме при разрешении 640 x 480 в адаптере могут храниться две дисплейные страницы. В каждый момент времени на экране отображается только одна страница, хотя вывод может производиться в любую из них. Возможность хранения двух страниц в памяти адаптера обуславливается наличием механизмов разрешения/запрета записи и отображения битовых плоскостей: любой набор битовых плоскостей может быть защищен от изменения и любой набор битовых плоскостей может быть отключен при выводе содержимого дисплейной памяти на экран.

Адаптер 8514/A особенно удобно применять в тех случаях, когда для достижения различных зрительных эффектов используется маскирование битовых плоскостей. Прикладная программа может поместить в каждую из 8 битовых плоскостей отдельное изображение, а затем, используя маскирование, выводить их на экран по одному (в монохроме). В некоторых приложениях может оказаться целесообразным использовать 128-цветные изображения (для этого потребуются 7 битовых плоскостей), а в восьмой битовой плоскости могут быть размещены сообщения контекстно-зависимой подсказки. При обращении к экрану подсказки отключаются первые 7 битовых плоскостей и дается разрешение на вывод восьмой битовой плоскости. После окончания работы в режиме подсказки производятся обратные действия.

Производительность системы

Ввиду отсутствия информации об аппаратном интерфейсе адаптера, трудно установить какие действия при формировании и выводе изображения на экран выполняются аппаратурно, а какие программным путем. Поэтому оценка производительности системы является не простой задачей. Для получения информации о производительности собственно аппаратуры адаптера, были проведены измерения скорости работы системы на IBM PS/2 модели 60 с тактовой частотой 10 МГц и на PS/2 модели 80 с частотой 20 МГц. При расчете реальной производительности системы всегда необходимо учитывать наличие программного интерфейса к адаптеру 8514/A.

Скорость вывода

Для тестирования использовалась программа 8514TEST.C, доступная по сети PCTECH. Содержащиеся в этой программе тесты разработаны скорее с целью изучения работы системы, а не для измерения ее производительности. При оценке производительности системы необходимо проанализировать временные характеристики всех графических примитивов адаптера, тогда как программа 8514TEST.C может быть использована для тестирования только некоторых, хотя и наиболее распространенных, графических операций. В каждом тесте дважды выполняются одни и те же действия: в цикле без всяких задержек между командами интерфейса и в таком же цикле, только с временными задержками между командами. Тест выполнялся на моделях 60 и 80 PS/2. В результате были получены не только некоторые оценки производительности, но и выявлены некоторые аспекты взаимодействия программ интерфейса с аппаратурой адаптера.

При выполнении таких операций, когда программный интерфейс должен выполнить значительный объем подготовительной работы, выдать команду аппаратуре и, в то время как адаптер отрабатывает команду, передать управление прикладной программе, следует ожидать существенно различной производительности для этих двух типов тестов. Если подобные команды быстро следуют одна за другой, то в то время, когда адаптер отрабатывает предыдущую команду, центральный процессор PS/2 ведет подготовительные действия для выполнения следующей команды адаптера. Такой параллелизм в выполнении должен выявить увеличение производительности системы при последовательном выполнении операций по сравнению с производительностью, достигаемой при интерпретации отдельных команд дисплейного адаптера.

Ниже приводится описание использованных в процессе тестирования системы операций. Каждая операция выполнялась в четырех режимах: замена пикселов на экране соответствующими пикселами выводимого изображения, использование при выводе на экран операции XOR (исключающее ИЛИ), операции сложения и усреднения с содержимым экрана.

  • Вывод горизонтальных линий. Весь экран заполнялся горизонтальными линиями. Этот тест позволяет измерить максимальную скорость вывода линий на экран.
  • Вывод вертикальных линий. Весь экран заполнялся вертикальными линиями. Скорость вывода таких линий может быть примерно такой же как и скорость вывода произвольно направленных линий. Однако, можно было бы ожидать, что процесс вывода вертикальных линий оптимизируется аппаратурой адаптера. Если при выводе вертикальных и произвольно направленных линий не будут выявлены различия в скорости вывода, то из этого будет следовать, что никакие действия по оптимизации вывода вертикальных линий в аппаратуре не предусмотрены.
  • Очистка экрана - закраска всего экрана одним цветом. Этот тест позволяет определить максимальную скорость обновления экрана.
  • Вывод длинных произвольно направленных линий - выводится 10000 линий длиной 768 пикселов. Этот тест позволяет измерить производительность системы при выводе произвольно направленных линий и сравнить ее со скоростью вывода вертикальных линий.
  • Вывод произвольно направленных линий средней длины - выводится 10000 линий длиной 40 пикселов. Использование таких линий является типичным при выполнении чертежных работ. Этот тест наиболее точно моделирует производительность системы в реальных приложениях.
  • Вывод произвольно направленных коротких линий. Выводится 10000 линий, каждая длиной 4 пиксела. Этот тест позволяет оценить время, затрачиваемое интерфейсными программами на выполнение подготовительных действий для вывода линии, т.к. время, затрачиваемое адаптером на собственно вывод линии, в данном случае ничтожно мало.
  • Вывод произвольных закрашенных прямоугольников - выводится 1000 закрашенных прямоугольников, что позволяет определить максимальную скорость вывода пикселов.

Для более точной оценки производительности адаптера 8514/A на ПЭВМ со встроенным адаптером VGA был разработан специализированный программный интерфейс VGALOAD.COM к VGA. Программами этого интерфейса моделируется небольшая часть функций интерфейса адаптера 8514/A применительно к VGA. Такой тест поэволяет провести сравнительный анализ адаптеров 8514/A и VGA. Отметим, что программы интерфейса VGALOAD были подготовлены так, чтобы оптимизировать по времени выполнение перечисленных выше операций. Если бы был реализован программный интерфейс полностью моделирующий набор операций 8514/A, то его производительность была бы несколько ниже производительности VGALOAD.

Результаты сравнительного анализа приведены в табл. 4 и показывают, что адаптер 8514/A существенно превосходит по своей производительности VGA: при выводе горизонтальных прямых производительность 8514/A примерно в 2 раза выше чем у VGA, а при выводе длинных произвольно направленных прямых - примерно в 100 раз. Общая производительность адаптера 8514/A при выполнениии различных операций изменяется в довольно широком диапазоне.

Все функции вывода, как это было сказано выше, тестировались в четырех режимах: изменения, XOR и суммирование с содержимым экрана, а также взятие среднего от записываемого значения и содержимого соответствующего пиксела на экране. Теоретически, скорость вывода в режиме замены должна быть примерно в два раза выше чем в остальных режимах. Отличие состоит в том, что в этих трех режимах необходимо сначала прочитать содержимое дисплейной памяти, а затем обратно записать полученное в результате выполнения операции значение в память и, следовательно, для выполнения операции требуются два обращения к памяти. На самом же деле в режиме изменения также используются два обращения к памяти. При выводе произвольно направленно прямой для замены одного пиксела в байте необходимо считать требуемый байт из памяти, модифицировать его и снова записать в память адаптера. Единственным исключением может быть случай, когда допускается маскирование памяти, что дает возможность осуществлять запись в память без предварительного чтения ее содержимого.

При выводе вертикальных линий, произвольно направленных линий, произвольных прямоугольников и закраске экрана адаптер показывает большую производительность в режиме замены. Это наблюдение согласуется с количеством требуемых обращений к памяти для различных режимов выполнения операции, хотя скорость вывода в режиме замены, ввиду необходимости выполнения подготовительных действий перед выдачей соответствующей команды адаптеру, возрастает менее чем в два раза. Во всех четырех режимах скорость вывода коротких линий примерно одинакова. Аналогичное утверждение справедливо и для линий средней длины. При этом скорость вывода линий средней длины в 10 раз выше скорости вывода коротких линий. Анализ результатов показывает, что количество линий, которые могут быть выведены за единицу времени, практически не зависит от их протяженности, а, т.к. количество пикселов в коротких линиях и линиях средней длины различается в 10 раз, то при выводе коротких линий соответственно уменьшается и производительность системы, измеренная в количестве выводимых пикселов за одну секунду.

Линейное уменьшение скорости вывода пикселов при уменьшении длины линии говорит о том, что возможности аппаратуры адаптера используются не в полной мере. В большинстве случаев, фактором, ограничивающим производительность системы является недостаточно высокая скорость функционирования программного интерфейса, вследствие чего, независимо от длины линии, система затрачивает на ее вывод примерно одно и то же время. Этот вывод подтверждается также тем наблюдением, что скорость вывода линий средней длины и коротких линий, а также длинных линий с небольшими углами наклона возрастает в два раза при переходе от модели 60 к модели 80. Т.к. скорость работы адаптера 8514/A при этом не изменяется, весь прирост производительности можно отнести за счет ускорения работы интерфейсных программ. Подытоживая сказанное выше, можно заключить, что программный интерфейс адаптера 8514/A является наиболее узким местом, ограничивающим общую производительность графической системы.

Тестирование графического адаптера VGA с использованием программного интерфейса VGALOAD не привело к каким-либо неожиданным результатам, за исключением различий в производительности при выводе горизонтальных линий, произвольных прямоугольников и очистки экрана в режиме исключающего ИЛИ. Т.к. в VGA аппаратно реализованы возможности выполнения операций в режимах замены и исключающего ИЛИ (однако, отсутствует аппаратная реализация режимов суммирования и усреднения), то в обоих этих режимах производительность системы при выполнении операций, требующих большого количества обращений к памяти, примерно одинакова. Тестирование системы не выявило каких-либо различий в производительности при выводе коротких и длинных линий, чего, собственно, и следовало ожидать, т.к. в данном случае, скорость вывода определяется не временем обращения к памяти, а эффективностью алгоритма рисования линии.


Назад | Оглавление | Вперед

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог