DOTEDIT.ZIP: README.2ND                                             26-Oct-91

    Этот документ сопровождает набор из трех утилит для редактирования файлов
в  формате  загружаемых  шрифтов  для 9- и 24-иголочных матричных принтеров с 
Epson-образной системой команд:

    NX.COM - редактор шрифта чернового (draft) качества  с матрицей 11x8  для
             9-иголочных принтеров Epson FX, Star NX(LC) и десятков других;
    LX.COM - редактор шрифта почти  символьного  качества  (NLQ)  с  матрицей
             23x16 для 9-иголочных принтеров  Star NX(LC) и других с подобным
             способом формирования знаков в режиме NLQ;
    LQ.EXE - редактор  шрифта символьного  качества (LQ) с матрицей 24x42 для
             24-иголочных принтеров Epson LQ, Star NB24, Amstrad LQ и пр.


                        1. Предварительные замечания

    Поводом для написания этих программ стало следующее:

    - из-за мелких различий  в  системах  команд  и  возможностях  громадного
набора  моделей  ударных  матричных  принтеров,  которыми  комплектуются  PC,
среди доступных драйверов-русификаторов (во главе с Бетой) не всегда  удается
выбрать целиком подходящий;
    - некоторым  принтерам,   позволяющим   загрузить  символы  всей  таблицы
ASCII-8, TSR-русификатор, строго говоря, не нужен;
    - не  аппаратная  поддержка  кириллицы  с качеством NLQ,  а  также шрифта
Элита (12 симв/дюйм) - вообще редкость;
    - появляется необходимость поддержать национальный алфавит на базе кирил-
лицы (например, украинизировать аппаратно русифицированный Epson).

    C подготовленными редакторами файлами можно поступить следующим образом: 
    
    - объединить шрифт в одну "колбасу"  с командами установки режимов, пере-
сылки  ROM-символов в RAM и пр.,  а затем  копировать с  ключем /b полученный
файл на устройство  PRN - если  принтер позволяет заменить изображения знаков
для всех кодов, требующих замены;
    (ПРИМЕЧАНИЕ: в DR-DOS'е 5.0 команда  "copy /b файл prn"  почему-то небез-
различна к содержимому файла,  так что лучше написать "примочку",  работающую
через INT 17H);
   - преобразовать двоичные данные шрифта в текст Ассемблера или C и встроить
его в TSR-программу  -  если принтер требует динамической подгрузки изображе-
ний знаков или переключения ROM <-> RAM;
   - использовать  шрифт  для модификации  образа  микросхемы ПЗУ контроллера
печати с последующим ее перепрограммированием  (по опыту общения с содержимым
ПЗУ принтера CPF-136 можно заключить,  что встроенный шрифт хранится  в таком
же формате, как и загружаемый);
   - информацию о размерах загружаемых символов можно  поместить в  правильно
написанный драйвер Chi-Writer'a  для  печати  пропорциональным  шрифтом в не-
графическом режиме.

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

    К дню 26 октября 1991 г.  мне еще не вcтречался  ни один аналогичный про-
дукт, хотя, вероятно, они существуют во многих разновидностях.
    

                        2. Форматы файлов

    Все редакторы работают с файлами следующей структуры:
    
                                                 ┌───┤ n2 - n1 + 1 раз ├────┐
Смещение:            0     1     2     3     4   │                          │
                                                 │атрибут + матрица символа │
Содержимое байта:   ESC    &    NUL    n1    n2  │                          │
                                                 └──────────────────────────┘
   Для  draft шрифтов  информация об одном символе  занимает всегда  12 байт,
для  NLQ - 47 байт,  для  LQ - размер данных переменный  и  не  превышает 129
байт.
   Описанный формат  имеет команда "Define download characters", имеющаяся  в
наборе большинства принтеров,  мулирующих систему команд  Epson ESC/P  и  IBM
Proprinter. Подробный формат байта атрибута  и  данных матрицы  можно найти в 
разделах "Download Characters", "Creating Characters", "User-defined Charact-
ers" и т.п. пользовательской документации к принтеру.
     Принтеры,  эмулирующие систему команд IBM Graphics имеют другую последо-
вательность загрузки, которая начинается с "ESC = ..." и  отличается форматом
заголовка шрифта, а также количеством и содержимым байтов атрибутов. Структу-
ра же матрицы знака не отличается от используемой Epson'ом, поэтому шрифтовой
файл можно легко сконвертировать.
     Некоторые принтеры  (в том числе семейства Epson FX) не позволяют вообще 
определить NLQ символы, ограничиваясь режимом "Emphasized" по отношению к за-
груженным в формате draft  знакам,  другие принтеры  (Star)  допускают формат
увеличенной матрицы для режима NLQ.
     Мне известны также две модели  (CPF-136 и CPF-160) принтеров,  в которых 
матрица NLQ формируется особым образом,  совершенно не совместимым с имеющим-
ся редактором.


                        3. Выполнение программ

     Программы редакторов  распознают  имя обрабатываемого файла  в  качестве
аргумента командной строки.  Если указанный файл  не  может  быть  открыт ре-
дактором, последний пытается  создать  новый  файл  для  указанного диапазона
символов.  Функции  слияния  и  разделения  файлов  не  предусмотрены.  Вновь
созданный файл шрифта draft и NLQ не будет меняться в размере при последующем
редактировании.
    Для управления  курсором на экране редакторы используют стандартные ANSI-
последовательности,  так что желательно присутствие драйвера ANSI.SYS или по-
добного.


                        4. Команды редактирования

    Команды, общие для всех редакторов:

    F3          Сохранить изменения в редактируемом файле.
    F5          Сохранить изменения на экране в матрице символа.
    F6          Перейти к редактированию указанного символа.
    F7          Уменьшить левый отступ.
    F8          Увеличить левый отступ.
    PageUp      Перейти к редактированию предыдущего символа.
    PageDown    Перейти к редактированию следующего символа.
    Home        Перейти к редактированию первого символа.
    End         Перейти к редактированию последнего символа.
~/Space/Enter   Поставить или удалить точку.
    Esc         Завершить работу с редактором.


    Команды, общие для редакторов 9-иголочных шрифтов (draft и NLQ):

    Ins         Выбрать нижнюю группу иголок (1-8)
    Del         Выбрать верхнюю группу иголок (2-9)
   

    Команды, общие для редакторов шрифтов NLQ и LQ:

    F9          Увеличить правый отступ.
    F10         Уменьшить правый отступ.


    Особые команды редактора шрифтов draft:

    F9          Уменьшить ширину символа.
    F10         Увеличить ширину символа.


    Особые команды редактора шрифтов LQ (24 иголки):

    Shift-F5    Сдвинуть изображение символа вверх.
    Shift-F6    Сдвинуть изображение символа вниз.
    Shift-F7    Сдвинуть изображение символа влево.
    Shift-F8    Сдвинуть изображение символа вправо.
    Shift-F9    Уменьшить ширину символа.
    Shift-F10   Увеличить ширину символа.


                        5. Содержимое поставки

   Программы компилировались Microsoft C 6.0 следующим образом:

        cl -FPa -G0r -Ozax -AT nx.c
        cl -FPa -G0r -Ozax -AT lx.c
        cl -FPa -G0r -Ozax -AS lq.c -link /ST:0x2000

    Выполняемые модули были сжаты с помощью DIET'ы 1.10a, причем EXE-файл был
предварительно обработан HDROPT'ом 1.12 из поставки PKLITE'а.

    Прилагаемые русские и украинские draft и NLQ шрифты - результат усердного
труда  Игоря Янковского.  Мы с коллегой  склонны  полагать,  что получившийся
NLQ шрифт напоминает гарнитуру "Courier".

    Шрифт LQ позаимствован из поставки Лексикона.

    Вот список принтеров, на которых испытывались результаты работы:

      Star NX-1500, LC-15 (в режимах IBM Proprinter, Epson) - draft, NLQ
      Star NX-15 (в режиме Epson) - draft, NLQ
      Star NB24-15 (в режиме Epson) - LQ
      Amstrad 5000 (в режиме Epson) - LQ
      Citizen 120-D (в режиме IBM Graphics) - draft
      CPF-160 (в режиме Epson) - draft
      Teco VP2450 (в режиме Epson) - draft, NLQ.

    Судя  по имеющейся  документации,  не возникнут  проблемы  с устройствами
Epson 800/1000 и Epson 850/1050.


                        6. Заключительные замечания

    Если у  потенциальных  пользователей  продукта нет возможности возиться с
поддержкой национальных алфавитов самостоятельно, мы бы могли помочь  в  про-
граммной и аппаратной русификации, украинизации,  полонизации и т.п. печатаю-
щих устройств и  видеоадаптеров.  Есть также средства для лазерных принтеров,
совместимых по системе команд с HP LaserJet (HP, Toshiba, Dataproduct...).
    К нам случайно попал хорошо сделанный продукт "Nafitha": арабизация(!) PC
под управлением МS-DOS + арабский текстовый процессор.  С коллегами,  интере-
сующимися устройством поддержки письма справа-налево (иврит), мы охотно поде-
лимся.  В свою очередь, нам было бы интересно узнать об обеспечении  иерогли-
фики (японский, китайский языки) или, хотя-бы, подробности архитектуры машины 
Epson-PC.


Алексей Мединец

раб. тел. (044)441-9812 (9.00 - 12.00, голос и модем)
