         GalaSoft United Group International, September 1992

     Мы бы хотели акцентировать  внимание  сообщества  программистов
России,  Украины  и  Беларуси  на вопросе,  который уже неоднократно
муссировался в различных формальных  и  неформальных  дискуссиях.  А
именно, как быть с кириллизацией расширенной таблицы кодов ASCII.
     Сразу стоит подчеркнуть (об этом часто забывают),  что кирилли-
зация  необходима  не только для вывода на экран сообщений на языках
указанных государств, но и вообще для обеспечения во всех отношениях
"нормальной" работы персональных компьютеров как с оригинальными за-
падными программными продуктами,  так и  с  программами,  созданными
специально для использования в регионе.
     Вне всякого сомнения,  нормальная работа со  старыми  западными
продуктами,  не  подозревающими о существовании кодовых страниц и т.
д.,  невозможна без кириллизации самого продукта.  К счастью,  те из
программ данной категории, которые интенсивно используются в "кирил-
лических" государствах, по большей части уже русифицированы.
     Однако и  при работе с другими программами,  созданными в более
позднее время или/и разработанными более профессионально,  возникают
некоторые  проблемы.  Главнейшая  из  них  - обилие кодировок второй
части восьмибитовой таблицы ASCII.
     При использовании  так  называемой "основной" кодировки,  равно
как и "болгарской",  принципиально невозможно нормально  работать  с
англоязычными продуктами, если они не были предварительно "русифици-
рованы".  Более всего, пожалуй, подходит 866-я кодовая таблица фирмы
Microsoft  (на так называемой "альтернативной" кодировке мы останав-
ливаться не будем - они очень похожи,  а предложения фирмы Microsoft
-  "не  догма,  а  руководство  к  действию").  Однако  и в ней есть
несколько досадных мелочей, к числу которых относятся:
  1) Отсутствие украинской буквы "Г твердое" (большой и маленькой);
  2) Отсутствие белорусской буквы "У с черточкой";
  3) Отсутствие  выделенной  украинской буквы I (i),  вместо которой
     используется латинская буква I (i),  в связи с  чем  невозможна
     правильная сортировка смешанных украино/английских текстов.

     На последних семинарах,  проводимых редакцией бюллетеня Софтпа-
норама,  этот вопрос горячо обсуждался, и выдвигались предложения по
устранению недостатков, присущих 866-й кодовой странице. Мы бы риск-
нули призвать всех к скорейшему разрешению этих споров.
     Кроме того, хочется обратить внимание отечественных разработчи-
ков программных средств на некоторые возможности,  о  которых  часто
забывают.
     Существует небольшая  утилита  CyrDos,  разработанная   группой
Compact Soft. Эта программа модифицирует внутренние таблицы DOS, со-
держащие информацию,  испольуемую DOS и прикладными программами  для
сортировки  слов,  приведения  символов к верхнему регистру и т.  д.
(см. описание INT 21h, подфункции 38h и 65h). Мы призываем всех раз-
работчиков кириллизаторов вставлять в них (в инициализирующей части)
блочок,  выполняющий аналогичные функции (благо это  не  приведет  к
увеличению размера резидентной части программы).  В то же время оте-
чественные программисты вполне могут использовать эти таблицы (в  MS
DOS  5.0 структура этих таблиц и способ доступа к ним уже документи-
рованы) в своих программах,  чтобы не изобретать велосипед и вводить
в программы собственные,  "домашней" выработки, русские (украинские,
белорусские)  процедуры  UpCase  и  прочие.  Это  простейший  способ
обеспечить действительно универсальную работу Ваших продуктов на ма-
шинах с различными видами кодировок.
     Очень приятной  была  бы возможность из любой программы опреде-
лять наличие любого кириллизатора в памяти. С этой целью разработчи-
кам кириллизаторов стоило бы ставить "Installation check" не на про-
извольно выбранные подфункции 16-го, 9-го или даже 2F-го прерываний,
а  на  "Богом  данную" для этой цели подфункцию AX=0AD80h прерывания
2F,  которая  служит  в  качестве  проверки   инсталляции   драйвера
KEYB.COM. Достаточно только немного расширить протокол использования
этой подфункции,  чтобы легко можно было  определить  тип  и  версию
используемого кириллизатора.
     Нам кажется, что приведенные соображения могут оказаться весьма
полезными для программистов России, Украины и Беларуси. Все изложен-
ное полностью открыто для дальнейшего обсуждения  и  любой  критики.
Если некоторая часть сказанного совпадает с мыслями и идеями,  пред-
ложенными кем-то ранее, мы приносим свои извинения и уверяем, что мы
просто не знали о том, что эти идеи были высказаны ранее.

     
    С уважением, Антон Березин и Борис Зулин, группа GalaSoft.
     
                            9 сентября 1992
