Cофтпанорама 1990, No.6 (10) ** ARTICLES **  Составитель: Н.Н. БЕЗРУКОВ
***********************************************************************
                                      Приводимые в данном разделе замет-
                                 ки  выражают  мнение авторов,  которое,
                                 естественно, может не совпадать с  точ-
                                 кой зрения составителя.
***********************************************************************

А.С.Кнутов      


      К ВОПРОСУ О РУСИФИКАЦИИ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ ТИПА IBM PC.
      -------------------------------------------------------------

       Данные  положения   сложились  на   основе  опыта   работы  с
    компьютерами  IBM  PC\XT\AT,   ЕС-1840\41\42,  ПРАВЕЦ-16  и   не
    претендуют  на  стандарты,  но,  тем  ни  менее,  могут являться
    критериями  оценки  полезности  существующих  и  разрабатываемых
    реализаций.

       Руссификация компьютера типа IBM PC, как правило, сводится  к
    следующим моментам:

         - руссификации видеоадаптера ( для получения русских буковок
           на экране ) путем перепрошивки ПЗУ или загрузки фонта;
         - руссификации клавиатуры ( для получения возможности ввода
           русских буковок ) путем создания ( или применения готового)
           драйвера;
         - руссификации принтера ( для отражения русских буковок на
           бумаге ) путем перепрошивки ПЗУ или загрузки фонта.

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

       Как   показала   практика,   компьютеры   без   принтера  еще
    встречаются, отсюда  есть резон  вынести руссификацию  принтера,
    все же, в отдельный, связанный с основным, драйвер.

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

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

       Для реализации  этих возможностей  драйвер клавиатуры  должен
    работать  на  самом  низком   уровне  (  не  надстраиваясь   над
    стандартным INT 16  BIOS, а работая  с портами и  моделируя свой
    INT 16 c новыми функциями ).

       В машинах, произведенных в СССР или для СССР, для этих  целей
    имеются специальные клавиши, для расширеной клавиатуры ( DFK-101
    и  DFK-102  )  предлагается  использовать  клавиши правый Ctrl и
    правый Alt и лампочку Scroll Lock для остальных правый Shift.

       В настоящий момент существуют 5 стандартных кодовых таблиц  (
    используемые на персональных компьютерах ) с русскими буквами :

               - Основная советская кодировка;
               - Альтернативная советская кодировка;
               - MIK ( основная болгарская кодировка );
               - MSX ( альтернативная болгарская кодировка );
               - КОИ8.

       Программные  продукты,  общающиеся  на  русском  языке, в 50%
    работают в альтернативной кодировке, в 40% в основной кодировке,
    в 9% в MIK и в 1% в кодировке MSX. Кодировка КОИ8 кроме как в
    ПЗУ ПРАВЕЦ-16 мне больше не встречалась.

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

     Реализация драйвера с заменой стандартного INT 16 позволяет
    вводить дополнительный функции на этом прерывании, такие как :

         - функция идентификации наличия драйвера;
         - функции получения информации о текущем состоянии экрана и
           клавиатуры; например :
                  - текущая кодировка,
                  - текущий алфавит, и т. д.
         - функции динамического изменения этой информации; например :
                  - смена текущей кодировки,
                  - смена текущего алфавита,
                  - смена регистра,
                  - смена кода клавиши,
                  - и даже смена алгоритмов перевода верхнего в
                    нижний регистр;
         - функции определения  клавишей  активизации резидентов.

       Экранные драйверы, как правило, содержат в памяти необходимые
    для  работы  фонты  для  поддержки  многострочных  и графических
    режимов,  что  влечет  заметное  увеличение  объемов  занимаемой
    памяти,  и  возможностей  зависаний  или  сбоев  во  время смены
    режима.

       Предлагается  закачивать  эти   фонты  в  адаптер   в  разные
    сегменты, убрав их из памяти после загрузки, и при смене  режима
    только переключать сегменты, а в критических случаях ( графика
    разрешения EGA ) читать фонты с диска.

       Если видеоадаптер не имеет возможностей загрузки фонтов (как
    у EGA, ЕС-1840\41\42 ), или переключения сегментов ПЗУ с фонтами
    (как у ПРАВЕЦ-16 ) можно перепрошить ПЗУ на требуемую кодировку,
    или заменить ПЗУ видео адаптера на другое, с  большей емкостью,
    вмещающее  требуемые  фонты  в  разных  сегментах,  и  с помощью
    достаточно простых  доделок сделать  аппаратное или  программное
    переключение сегментов.

       На основании вышеизложеных принципов уже созданы драйверы для
    IBM  PC\XT\AT  EGA,  ПРАВЕЦ-16,  ЕС-1840\41, которые   прекрасно
    зарекомендовали себя в течение двухлетней эксплуатации.

                 Рабочая группа 'ПУМА' при НТК 'Диада'

                    т. 516-23-21  Кнутов А.С.