программа font_ed предназначенна для редактирования растровых шрифтов
требует для работы wxWidgets 2.8.12
запускаемый файл fontedwx

Основные возможности:
- исполняемые файлв для Linux и Windows
- данные хранятся в файле *.h
- произвольный размер символов
- выбор формата заголовка (заголовок,таблица смещений,нет)
  и формата данных - моноширинный/нет
  для немоноширинного для каждого символа задается его ширина
- задавать формат растровых данных:
  горизонтально/вертикально, LSB/MSB, направление обхода
- импорт символов из системных шрифтов
- импорт символов из картинки (через карман)
- копирование/вставка в/из системного кармана
  как в текстовом, так в графическом формате

изменения в формате шрифтов:
- изменился font_id стал равным 0xCE вместо 0xCD
- в заголовке добавленно поле bits после поля height
- в поле bits сохраняются: "mono width", "byte dir", "save dir"
  и если открывается шрифт с заголовком, то читаются все настройки
- изменено описания диапазона символов: поля char begin и char end убранны
  теперь описание начинается с поля  blocks count, за которым следует массив
  из структур char begin + char end + unicode begin в колличествеБ указанном в blocks count
- чтоб конвертировать в новый формат нужно открыть старый файл и тут-же сохранить
- если при открытии файла старого формата с заголовком шрифт загружается некорректно
  нужно убрать галочку с "mono width" и открыть файл заново
- параметры шрифта сохраняются в коментарии
  поэтому не нужно перед чтением выставлять

перед открытием документа без заголовка устанавливаем
набор символов, "char width", "char height", "byte dir", "save dir", "file format", "mono width"
такими, какими они были при сохранении файла

вверху иконки инструментов (toolbar) слева направо
 - новый документ
 - открыть шрифт
 - сохранить шрифт
 - выбрать набор символов
 - импортировать шрифт (используется набор символов)
   !внимание - импортируются только выбранные символы
 - импортировать произвольный символ
 - скопировать в буффер обмена
 - скопировать из буффера обмена
 - очистить поле редактирования
 - двигать картинку в поле редактирования влево
 - двигать картинку в поле редактирования вправо
 - двигать картинку в поле редактирования вверх
 - двигать картинку в поле редактирования вниз
 - выровнять символ по левому верхнему краю и установить ширину

слева от окна редактирования
  - "ширина"/"char width"  - ширина символов шрифта
  - "высота"/"char height" - высота символов шрифта
  - "префикс пер."/"var prefix"  - слово будет записанно перед именем типа и именем переменной,
                    обычно это const или static const
  - "имя пер."/"var name"    - имя переменной шрифта
  - "постфикс пер."/"var postfix" - слово будет записанно после имени переменной
                    для AVR это FLASH, для ARM эдесь пусто
  - "обход-байт"/"byte dir" - изображение сохраняется в файле побайтно
                    т.е. горизонтальными или вертикальными полосками по 8 точек,
                    которые упаковываются в байт
                    + направление считывания
                    для быстрой работы нужно согласовать с организацией
                    памяти в дисплее
  - "обход-данные"/"save dir"    - направление обхода картинки
  - "формат файла"/"file format" - нужны ли заголовок и смещения
  - "фиксированная шарина"/"mono width"  - если выбранна - нет массива смещений и ширины перед символами

диалог "char set":
  сверху кнопки "add", "del"- добавить удалить блок символов
  внизу выбор готового пресета символов
  в gride вводится "in start char", "in end char" - первый и последний
  номер символа блока в кодировке UNICODE
  "font start pos" - начало блока символа в файле шрифта (в заголовке)

диалог "import font":
  перед вызовом диалога нужно выделить импортируемые символы и нажать "import font"
  сверху выбираем шрифт, стиль и размер
  дальше редакторами "font size","font offset X","font offset Y"
  добиваемся наилучшего вида букв, жмем "Ok"
  при размере шрифта 7 и меньше не прорисовываются некоторые буквы
  для устранения задавайте стиль bold

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

набор символов
  задает диапазоны символов - например русский/английский/цифры,
  русский/цифры, русский/греческий/английский/цифры
  в диалоге можно добавлять/корректировать/удалять диапазоны
  диапазон - начало/конец набора в UNUCODE и начало в выходной таблице

как считать шрифт из библиотеки avrlib от Pascal Stang:
- редактор к сожалению не умеет читать типы из 2х слов и не знает атрибуты,
  поэтому меняем
  "static unsigned char __attribute__ ((progmem)) Font5x7[] = {"
  на
  "static const uint8_t Font5x7[] = {"
- заходим в font_ed
- выставляем ширину в 5 (char width)
- задаем "file format" - "only data"
- ставим галочку на "mono width"
- жмем кнопку открыть, выбираем файл

как считать шрифт из библиотеки avrlib от Pascal Stang вариант 2:
- устанавливаем в редакторе шрифтов размер шрифта 5*8
- открываем шрифт в любом текстовом редакторе
- отмечаем коды растра нужной буквы -
  например для '0' - 0x3e,0x51,0x49,0x45,0x3e
  помещаем текст в карман (жмем ctrl+C)
  в редакторе шрифтов выделяем букву
  и жмем "скопировать из буффера обмена"
  так-же можно скопировать код растра для нескольких букв
  соответственно в редакторе шрифтов перед вставкой
  нужно выделять несколько букв

импорт символов из картинки:
- открываем картинку в граф.редакторе (я использую GIMP)
  например открываем картинку из каталога fonts, что идет с редактором
  там 2 картинки со шрифтом - Font6x8.gif и Font8x8.gif - открываем любую
- смотрим размер символа - ширина 159 / 16 символов в строке = 10
  высота так-же 10
- выбираем инструмент прямоугольное выделение, выделяем символы
  (цифры + английские буквы)
- копируем в карман (меню правка -> копирование)
- в редакторе шрифтов задаем вычисленную ширину и высоту
  текущем примере ширина 10 и высота 10
- мышкой выделяем набор символов, как и на картинке
  (нажимаем левую клавишу мышки на '0',
   не отпуская перемешаем до 'z', отпускаем левую клавишу мышки)
- вставляем (меню редактирование -> вставить)
- задаем ширину и высоту по размеру шрифта, если надо двигаем
- ставим галочку на "mono width", если надо
- жмем кнопку сохранить

пример создания английского/русского моноширинного шрифта 5х8:
- устанавливаем ширину и высоту шрифта (char width & char height) 5 и 8 соответственно
- задаем имя переменной шрифта (var name)
- нажимаем выбрать набор символов (setup char set);
  там выбираем (внизу слева) "english/russian char set";
- жмем "Ok"
- выделяем все символы (нажимаем левую клавишу мышки на первой букве,
  не отпуская перемешаем до последней, отпускаем левую клавишу мышки)
- нажимаем "import font"; выбираем Ubuntu, выбираем стиль Bold
  меняя размер (справа вверху) и смещение (снизу слева)
  добиваемся необходимого размера и положения символов
  нажимаем "Ok"
- смотрим получившийся результат, редактируем, если нужно
- ставим галочку на "mono width"
- жмем кнопку сохранить

добавление греческого шрифта к рускому/английскому
- нажимаем выбрать набор символов (setup char set);
- нажимаем кнопку добавить
- в добавленой строке - символ начала задаем 0x391,
  символ конца - 0x3BF, начало шрифта - 0x81
  (соответственно диапазон в выходном шрифте 0x81-0xAF
   выходном шрифте еще остается свободным диапазон 0xB0-0xBF)
- жмем "Ok"
- выделяем добавленные символы (они пока пустые и отображаются как белые квадраты)
  (нажимаем левую клавишу мышки на первой букве,
  не отпуская перемешаем до последней, отпускаем левую клавишу мышки)
- нажимаем "import font"; выбираем Ubuntu, выбираем стиль Bold
  меняя размер (справа вверху) и смещение (снизу слева)
  добиваемся необходимого размера и положения символов
  нажимаем "Ok"
- смотрим получившийся результат, редактируем, если нужно
- ставим галочку на "mono width"
- жмем кнопку сохранить

добавление набора произвольных символов к рускому/английскому
- нажимаем выбрать набор символов (setup char set);
- нажимаем кнопку добавить
- в добавленой строке - символ начала задаем 0x2200,
  символ конца - 0x220F, начало шрифта - 0x80
  (соответственно диапазон в выходном шрифте 0x81-0x8F
   выходном шрифте еще остается свободным диапазон 0x90-0xBF)
- жмем "Ok"
- выбираем символ в добавленном диапазоне
  (они пока пустые и отображаются как белые квадраты)
- жмем импортировать символ, в открывшемся диалоге
  задаем начальный символ (слква сверху) 2190 или 2900 или 2B00 (стрелочки)
  или 2200 (математические символы)
  выбираем нужный символ, жмем Ok
- повторяем предыдущие 2 пункта, пока не заполним диапазон
- смотрим получившийся результат, редактируем, если нужно
- жмем кнопку сохранить


