Открой свой мир программирования и    
цифровых технологий
Вопросы совместимости
Автор lisa   
05.07.2011 г.

Если вы хотите, чтобы ваша программа выполнялась на различных машинах семейства PC и PS/2, необходимо предусмотреть в программе совместимость для разных компьютеров. Так как фир­мой IBM созданы различные видеоподсистемы, программисты разработали несколько подходов к ре­шению вопроса о совместимости. Они включают в себя создание:

  • устанавливаемых программ;
  • самоустанавливающихся программ;
  • независимых от аппаратуры программных окружений.

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

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

Вы можете использовать несколько различных приемов для определения видеоподсистемы. На ма­шинах PS/2 ROM BIOS предоставляет в ваше распоряжение службу, которая сообщает конфигура­цию видеооборудования (см. гл.9), однако при работе с семейством компьютеров PC/XT/AT вы дол­жны полагаться на применение нестандартных приемов определения оборудования, которые задоку­ментированы в технических руководствах по аппаратным средствам.

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

В простейшем случае ваша программа может использовать видеорежим, который был активен в момент ее запуска. Служба 0FH прерывания ROM BIOS ЮН сообщает номер текущего видеорежима. Однако если вы не используете интерфейс к ROM BIOS на языке ассемблера, то можете легко опре­делить видеорежим простым обращением к нижеприведенной программе для проверки статусной пе­ременной ROM BIOS, расположенной по адресу 0040:0049Н, которая содержит номер видеорежима.

Вы можете в своей программе избежать зависимости от имеющегося видеооборудования, если вос­пользуетесь операционной оболочкой типа GEM фирмы Digital Research или Windows фирмы

Microsoft. Такие оболочки защитят вашу программу от непредвиденных особенностей видеоаппарату­ры с помощью ряда надежных, независимых от аппаратуры подпрограмм, обеспечивающих операции ввода/вывода для дисплея. Естественно, возникнет проблема, связанная с тем, что конечный пользо­ватель также должен иметь копию операционной оболочки, способной обеспечить работу вашей про­граммы.

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

Во-первых, совместимость повышается при выводе на дисплей только текста. Многие ПК по-прежнему оборудованы монохромными дисплейными адаптерами, которые не могут воспроизводить графику. Если при разработке программы вы стоите перед дилеммой: текст или графика, вам нужно учитывать два фактора. С одной стороны, как уже наглядно продемонстрировали многие программы, вы можете создавать очень эффектные изображения с помощью одних только стандартных текстовых знаков IBM. С другой стороны, все чаще и чаще компьютеры наделяются графическими возможно­стями. Поэтому в будущем вывод, включающий в себя лишь текст, вероятно, потеряет свою значи­мость и вы сможете использовать в своих программах графику, не беспокоясь о совместимости.

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

Короче говоря, вы должны взвесить преимущества, которые дает обеспечение широкой совмести­мости, с удобством и простотой написания программ для более узкого круга дисплеев. Наш собствен­ный опыт и убеждение подсказывают, что слишком часто программисты ошибаются, ориентируясь на узкий класс дисплеев, тем самым существенно ограничивая круг машин, на которых могли бы ис­пользоваться их программы. Будьте осторожны!

 
« Пред.
Скачать книги по программированию