На восьмой меге модуль ИК пиёмника ))). А по коментам, да как то стремаюсь я показывать как всё это у меня туго выходило и как всем форумом наставляли на путь истинный. В ролике вроде как со стороны всё просто получается, а если по ссылкам ковырнуть так нуб нубом получусь.
Ага - я подозревал, что кому-то пригодится ИК на восьмой.
Нечего там стесняться - начал с нуля и довёл до реализации проекта в железе.
Бывает, увидишь на ютубе интересную реализацию - ни описания, что это, как это, не понятно, где концы искать.
Сделай - оно полезно всем будет, и новичкам, и тебе.
3. Так как русский в юникоде кодируется 2 байтами а библиотека работает с однобайтовыми строками - юникод отпадает на глаза попалась кодировка ISO8859-5 где английские и руские буквы ограниченны одним байтом. Конвертим кодировку BDF c помощью fontforge, добавляем свои символы если надо.
4. используя команды типа "bdf2u8g font/6x10.bdf u8g_font_6x10 utility/u8g_font_6x10.c" конвертим обратно, попутно удаляя дубликаты из "utility/u8g_font_data.c" или добавляем как новый в "utility/u8g.h" и кидаем рядом ".с" файлик
Переписал исходники IDE добавил настройку в какой кодировке выводить исходник. Вобщем теперь он UTF8 перекодирует в то что я хочу во время препроцессинга исходника.
Ай молодца, не удержался, зарегистрировался, чтобы респект выразить. Как в "Назад в будущее" - неужели я сделал что-то, что работает? Молодец. Достал всех, но это того стоило))
Ай молодца, не удержался, зарегистрировался, чтобы респект выразить. Как в "Назад в будущее" - неужели я сделал что-то, что работает? Молодец. Достал всех, но это того стоило))
О вам) Или про вас. Про тебя, в общем. Законченная конструкция - это так редко бывает. Молодец. По ходу пьесы, кстати, быстренько разобрался с нокиевским экранчиком. Огромный респект титовичу и лешаку. Очень полезный и доступный материал получился.
По ходу пьесы, кстати, быстренько разобрался с нокиевским экранчиком..
Чтож, спасибо. По поводу нокиевского экранчика кстати, нашёл времечко и дописываю библиотеку для МК с килобайтной оперативкой и возможностью вывода граффики и текста. Пишу это к тому что в основе её принцип, похожий на U8G. Помню как "хаил" создателя за такую бибу, а когда надумал как "писать и рисовать" на экранчике без чтения из него, вспомнил, что где-то я это уже видел.... но это уже совсем другая история.
Коли уж зашёл в тему, как то рисовал для себя русский 10х14, тоже самое - может кому-нЬтЬ.....
а bdf-ки под него не сохранилось? Или, еще лучше, если есть 6х9 и 6х10... был бы благодарен
никак не могу раскурить как внутри эти шрифты рисовать чтобы после конвертации в код нормально отображались, везде в виде кода уже, подглядеть негде. Уже думаю написать софтинку для обратной конвертации в битмап
значит не правильно в били шрифт. Насколько я знаю там в шрифтах у каждого символа задается его ширина - у вас она встала поумолчанию. Переделайте шрифт правильно.
Вы были правы - проверил ширину символов, и у пустых она оказалась равна шести. Не знаю почему, но после того как я выставил им ширину 1, всё встало на свои места. Еще чуть причешу шрифт и выложу сюда
Скорее всего процедура вывода строки не понимает юникод и для нее строчка "Готов" выглядит как "*Г*о*т*о*в"
где * - первый байт двухбайтного символа в кодировке юникод.
Поэтому, когда ширина "непечатаемых" символов была равна ширине символа - эти * печатались как пробел. Когда Вы изменили их ширину на 1, они стали незаметными.
Может вобще не то скажу, но IMHO ))).... Когдат подгонял вывод русских для экрана от нокиа 1280 (кодировка та же), также выводились с пробелом только не перед, а после русской буквы. На солько потом понял, после символа читаются и выводятся данные за пределами массива символов (шрифта) с шириной символа т.к. при загрузке в разные контроллеры или даже другой код с такой же функцией могли не пробелы выводится а "краказюки". Указал номер последнего символа в массиве шрифта и если номер выводимого символа больше последнего, он игнорируется. Крайний "п" это 191. Всё что больше, return. И пошло всё поехало...
как мне показалось, там определенный код используется в качестве дефолтного символа. Когда все пустые сделал равными одному пикселю в ширину, то и проблема ушла. Хотя, разумеется, умнее было бы разобраться, но мне пока некогда
Залил fon файлы на дропбокс, может кому полезны будут. В архиве 6х9 и 6х10. Там пара символов еще добавлена служебных для интерфейса 3D-принтера, не стал их удалять.
Товарищ NeiroN, меня заинтересовал ваш пост. Не смотря на то, что в описанной вами инструкции количество действий около 0, у меня не получилось повторить ваш подвиг.
Я занимаюсь тем же что и goodwind - руссификация LCD для 3D-принтера. И так же как у него возникла проблема с кодировкой. Путём небольших доработок кода получилось отобразить русские буквы без этих громадных пробелов между ними (коими являются спец символы русских букв в UTF-8), а так же верно выщитывать длины этих строк, что влияет на табуляцию в отображении. Но все же хотелось бы сделать красиво - иметь исходные строки в однобайтовой кодировке, чтобы можно было запутсить тот же самый механизм как и для латиницы.
Использую версию Arduino IDE 1.0.5 (тобишь как и у вас), скачал ваш pde.jar и заменил им одноименный в папке lib, в настройках появилось поле "Кодировка строк". Какие я только не ставил кодирвоки: и MS-DOS и KOI8-R и ASCII. Результат один и тот же - конечная строка так и остается в UTF-8.
Подкиньте, пожалуйста, мысль где и что я не так делаю. Спасибо за внимание.
Может я не писал - оно не меняет кодировку скетча при его сохранениее, оно меняет его кодировку преред компиляцией. Шрифт тоже должен быть в этой кодировке. Скачайте лучше целиком мою версию иде, где все библиотеки http://yadi.sk/d/B-IHNu6QJdiCX
я использовал этот шрифт и думаю что он оптимален u8g.setFont(u8g_font_6x10e); он уже скомпилирован и нет никаких пробелов, кодировка шрифта ISO-8859-5(вы спросите отчего же не CP-1251 - программа редактирования не поддерживала его)
1. Первое наперво нужно изменить шрифты 6x9 и 6x10, которые сделал goodwind. А именно нужно сделать ширину всех символов 6 точек (будь то "точка", "пробел" или буква). Это объясняется тем, что длина любой отображаемой строки на дисплее должна быть одинаковой в независимости от содержимого. У вас, например, "восклицательный знак" занимает 2 или 3 точки. Спецсимволы, которые вы сделали шириной в 1 точку а на дисплее они отображались в самом начале пробелами, можно сделать как угодно, так как в итоге нашей целью является исключение этих кодов при выводе информации на LCD. Это умозаключение я сделал, когда распечатал всю латиницу, знаки и символы стандартным марлиновским шрифтом и своим акуляром оценил занимаемое пространство на дисплее каждым символом.
2. Далее делаем уже не раз обмусоленную операцию конвертирования bdf2u8g отредактированных шрифтов и идём в конец файла dogm_font_data_marlin.h и вставляем что-то типа токого текста:
где u8g_font_6x9_cyrillic.h и u8g_font_6x10_cyrillic.h это заголовочные файлы где лежат массивы соответсвующих шрифтов. Я сделал подмену имён массивов с помощью макроопределений лишь с той и только с той целью, чтобы не бегать по скетчу и не искать где нужно поменять шрифты. А так в "language.h" поменял дефайн LANGUAGE_CHOICE и не паришься.
3. Самый ёмкий пункт. Тут пришлось переделать код в файле dogm_lcd_implementation.h. В нём очень часто встречается следующий код:
Очевидно, что этот код выводит посимвольно строку на LCD дисплей. Имеено сдесь находится причина вывода пустых спецсимволов (пробелов), так как в кодировке UTF-8 русские буквы кодируются двумя байтами, где 1ый - это код страницы (кстати он никогда, вроде, не совпадает по значению с литинскими буквами) и 2ой - это сам код символа. Понятно, что программа не должна выводить спецсимволы. Так же нужно будет в этом файле переделать функцию расчета длины строки с учетом вышесказанного, т.к. действующая считает число однобайтовых символов в строке. Не буду вас утомлять теорией и кину листинг этого файла:
Итог: Все это конечно не плохо, но сам подход ведёт к большому количеству доработок кода (как уже существующего так и добавляемого). Так, например, изменения которые мы сделали они каснулись только меню. А отображение строк на стартовой странице экрана также остается с "пробелами" между буквами ("*Г*о*т*о*в"). Можно и тут что-нибудь придумать. Но надо мыслить универсально! Именно поэтому я не считаю этот способ хорошим решением проблемы руссификации. А склоняюсь к методу, который предложил "NeiroN".
Кстати поковырявшись в редакторе FontForge нашол как добавить(Encoding->Add encoding Name ...) кодировки мелкомягких называются "windows-1251" и "cp866" - теперь можно запилить шрифты русские и в этих кодировках. Кстати строки выводимые в сериал(веб интерфейс, запись в файлы) будут в них же(потому что скетч перед заливкой конвертится в них), вот только "Монитор порта" их не съест, ну можно любым другим терминалом.
Объявлен однобайтовый массив размером в 20 символов и тутже проинициализировали его 13 символами. С учетом применения либы pde.jar by NeiroN, которая должна перед компиляцией текст "АБВГДЕЖЗИКЛМН" из UTF-8 перевести в указанную мною однобайтовую кодировку, компилятор выдает ошибку вида: инициализируемая строка слишком велика для объявленного массива.
Я решил не тратить время на поиск особенностей своей стреды, а решил на корню решить проблему - сохранять текст сразу в нужной мне кодировке. Я месяц как уже хотел перейти с Arduino IDE на Eclipse c плагином для работы с AVR микроконтроллерами. А тут ещё один лишний повод сделать это. Надо сказать пришлось немного подза***ться, но результат стоил стараний - удобство, быстрота, комфорт при работе с разными кодировками. В итоге взял за основу Windows-1251, налобал шрифт для неё в *.bdf формате, сконвертил, скомпилил, зашил и вот результат:
Офтоп! Вот интересно, осенне - весеннее увеличение числа девушек, резко увлекшихся ардуоной как то связано с приближающейся сессией?
а, мне уже и не интересно, почему буквы, сцуко, "русские" - в свете чудеснога спасения хуйлом Крыма от бендеровцев, уже не удивляюсь врождённому идиотизму "рускага народа".
Сорри. Но просто мои познания далеки от топик стартера.
А свой Мендель русифицировать хочеться. (заводской дисплей 12864)
Я бы была признательна за готовые файлы, которые необходимо поменять в прошивке чтобы получился русский шрифт как на скрине выше.
Так что мне если можно, мне именно "файликом". Пиво или шоколадку в качестве благодарности гарантирую ;)
Парни, ну вы реально как здрасте среди ночи. Какой дисплей? Синий с белыми квадратиками или всёж на вышеобсуждаемом контроллере?
В какой Вы прошивке и что собрались менять и в чём именно Вы слабы?
Наверное Вы думаете что существует некий файл, который можно просто загрузить в экранчик как то подключив его к компьютеру и он сразу скажет - " О-о-о-о, ПРИВЕТ МИР!" ну и в таком духе? Нет.
Я надеюсь Ваши познания достаточны чтоб уметь читать? Уверен что да. Прочтите Всю тему сначала, уж как тут я выносил мощзг форумчанам и тому же засранцу Клапуцию, и как они всё это мне разжували, по моему детальней некуда. Вы просто примерно поймёте что русские символы не просто отдельный файлик, а целый ритуал и в то же время мелочь, приятная мелочь, особенно когда сам нарисовал.
Надо заняться и сконвертировать все шрифты в windows-1251 кодировку, чтобы вместо дополнительных символов там была кириллица. один фиг памяти столько же занимают.
Ссылку на среду видела. Спасибо. Просто файлов Марлина там не нашла. Поэтому и спросила.
Да. реально полагала, что есть какой-то файлик вроде Configuration.h или language.h в котором хранится русский шрифт. И считала что кому-то не жалко ими поделиться.
temperator, у меня не всегда есть возможность попасть на форум, поэтому я могу ответить не сразу. К вашему сожалению это не один файлик, а целая последовательность действий. Мои результы были получины при помощи: Eclipse IDE + AVR Plugin, создания собственных шрифтов для кодировки в которой я пишу русский текст (в моём случае это Windows-2151), доработки кода в 2-3 файлах + создание новых. Если в целом смотреть на задачу руссификации графического дисплея,то у вас есть 2 выхода: пойти по пути NeiroN (работая в стандартной среде Arduino IDE с его либой, которая перед компиляцией конвертит текст из стандартной ардуиновской кодировки UTF-8 в ту, для которой у вас есть шрифты), либо как я - поставить Eclipse IDE (настроив его под AVR) и уже работать в той кодировке, под которую вы заточили свои шрифты. И в том и в другом случае предётся:
0. Создать шрифты для своей кодировки в bdf-формате, как это, например, было уже сделано goodwind'ом и сконвертировать их в u8g формат при помощи bdf2u8g (все это уже было)
1. Заменить ими шрифты прописанные в файле dogm_font_data_marlin.h. Я не стал менять стандартный марлиновский шрифт, поэтому новые шрифты я сделал в других файлах, а в этом - я лишь добавил концовочку, которая в случая компиляции английской прошивки использует марлиновски шрифт, а в случае русской - собственносделанный (смотрите мои предыдущие пасты).
2. Ещё я вынес русский перевод из language.h в отдельный файл с той целью, чтобы language.h редактировать в UTF-8 а русский текст в Windows-1251. Если идти по пути NeiroN'а, то этот пункт не нужно выполнять.
Разрешите предугадать реаакцию temperator. я непоняла не единого слова...
По всей видимости предсавление следующее:
как в копьютерах есть проги и иногда идут в комплекте руссификаторы, так и сдесь видимо была надежда что Вы сделали готовый руссификатор и Вас не затруднит им поделится.
Разрешите предугадать реаакцию temperator. я непоняла не единого слова...
По всей видимости предсавление следующее:
как в копьютерах есть проги и иногда идут в комплекте руссификаторы, так и сдесь видимо была надежда что Вы сделали готовый руссификатор и Вас не затруднит им поделится.
Примерно так и есть =)
m3xx пишет:
temperator, у меня не всегда есть возможность попасть на форум, поэтому я могу ответить не сразу. К вашему сожалению это не один файлик, а целая последовательность действий. Мои результы были получины при помощи: Eclipse IDE + AVR Plugin, создания собственных шрифтов для кодировки в которой я пишу русский текст (в моём случае это Windows-2151), доработки кода в 2-3 файлах + создание новых. Если в целом смотреть на задачу руссификации графического дисплея,то у вас есть 2 выхода: пойти по пути NeiroN (работая в стандартной среде Arduino IDE с его либой, которая перед компиляцией конвертит текст из стандартной ардуиновской кодировки UTF-8 в ту, для которой у вас есть шрифты), либо как я - поставить Eclipse IDE (настроив его под AVR) и уже работать в той кодировке, под которую вы заточили свои шрифты. И в том и в другом случае предётся:
0. Создать шрифты для своей кодировки в bdf-формате, как это, например, было уже сделано goodwind'ом и сконвертировать их в u8g формат при помощи bdf2u8g (все это уже было)
1. Заменить ими шрифты прописанные в файле dogm_font_data_marlin.h. Я не стал менять стандартный марлиновский шрифт, поэтому новые шрифты я сделал в других файлах, а в этом - я лишь добавил концовочку, которая в случая компиляции английской прошивки использует марлиновски шрифт, а в случае русской - собственносделанный (смотрите мои предыдущие пасты).
2. Ещё я вынес русский перевод из language.h в отдельный файл с той целью, чтобы language.h редактировать в UTF-8 а русский текст в Windows-1251. Если идти по пути NeiroN'а, то этот пункт не нужно выполнять.
По какому пути вам пойти - выбирайте сами.
Есть и 3й путь. Выпросить у Вас готовую прошивку, а уже потом подправить под себя конфиг =)
Я понимаю что путь неправильный, но он единственный, который я смогла бы реализовать.
Можно с Вами по такому пути договориться? Сколько коврижек для меня такое удовольствие будет стоить? =)
К сожалению, из-за отличия кодировки файла с русским переводом от UTF-8, Arduino IDE не сможет скомпилировать код, который успешно компилируется в Eclipse IDE. Если вы установите среду, то я без особых усилий выслал бы вам инструкцию и необходимые файлы для вашего принтера на указанную вами электронную почту.
гыы ну да мозг ты повыносил знатно, тебя уже просто игнорили.. но получилось хорошо, акуратно, мыладец!
На восьмой меге модуль ИК пиёмника ))). А по коментам, да как то стремаюсь я показывать как всё это у меня туго выходило и как всем форумом наставляли на путь истинный. В ролике вроде как со стороны всё просто получается, а если по ссылкам ковырнуть так нуб нубом получусь.
Ага - я подозревал, что кому-то пригодится ИК на восьмой.
Нечего там стесняться - начал с нуля и довёл до реализации проекта в железе.
Бывает, увидишь на ютубе интересную реализацию - ни описания, что это, как это, не понятно, где концы искать.
Сделай - оно полезно всем будет, и новичкам, и тебе.
Отошли от темы!
Я решил поиграться с аналогичным дисплеем подключил по HW SPI - указывая только CS пин - все замечательно, но нет русского языка.
1. Ставим Fontforge (если некорретно отображаются строки - удалить русскую локаль - будет инглиш)
2. качаем шрифты BDF
3. Так как русский в юникоде кодируется 2 байтами а библиотека работает с однобайтовыми строками - юникод отпадает на глаза попалась кодировка ISO8859-5 где английские и руские буквы ограниченны одним байтом. Конвертим кодировку BDF c помощью fontforge, добавляем свои символы если надо.
4. используя команды типа "bdf2u8g font/6x10.bdf u8g_font_6x10 utility/u8g_font_6x10.c" конвертим обратно, попутно удаляя дубликаты из "utility/u8g_font_data.c" или добавляем как новый в "utility/u8g.h" и кидаем рядом ".с" файлик
5. записывать строки придется "\xb0\xb1\xb2\xb3" //АБВГ
В планах переписать препроцессор Arduino IDE добавив перекодировку UTF-8 -> ISO8859-5 - чтобы записывать как есть.
Переписал исходники IDE добавил настройку в какой кодировке выводить исходник. Вобщем теперь он UTF8 перекодирует в то что я хочу во время препроцессинга исходника.
Выкладывать пока рано - не тестировал.
Выкладывать пока рано - не тестировал.
Протестировал! Все работает как Запланировано
/lib/pde.jar Настройки->Кодировка строк->[кодировка шрифта]
PROFFIT!!!
titovich, а можно на BDF этого шрифта взглянуть?
Ай молодца, не удержался, зарегистрировался, чтобы респект выразить. Как в "Назад в будущее" - неужели я сделал что-то, что работает? Молодец. Достал всех, но это того стоило))
Ай молодца, не удержался, зарегистрировался, чтобы респект выразить. Как в "Назад в будущее" - неужели я сделал что-то, что работает? Молодец. Достал всех, но это того стоило))
А Вы о чём? Ну или о ком?
Коли уж зашёл в тему, как то рисовал для себя русский 10х14, тоже самое - может кому-нЬтЬ.....
001
/*
002
Fontname: Verdana
003
Copyright:
004
Capital A Height: 14, '1' Height: 14
005
Calculated Max Values w=11 h=16 x= 1 y=12 dx=11 dy= 0 ascent=15 len=30
006
Font Bounding box w=11 h=15 x= 0 y=-1
007
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
008
Pure Font ascent =14 descent= 0
009
X Font ascent =14 descent= 0
010
Max Font ascent =15 descent=-1
011
*/
012
//#include "u8g.h"
013
const
u8g_fntpgm_uint8_t my14x10rus[4157] U8G_SECTION(
".progmem.my14x10"
) = {
014
0,11,15,0,255,14,3,35,6,248,32,255,0,15,255,14,
015
0,0,0,0,8,0,0,2,14,14,4,1,0,64,192,192,
016
192,192,192,192,192,192,128,0,64,192,128,6,5,5,7,0,
017
9,68,204,204,204,136,10,14,28,11,0,0,8,128,8,128,
018
17,0,17,0,127,192,17,0,17,0,34,0,34,0,255,128,
019
34,0,34,0,68,0,68,0,9,14,28,10,0,0,8,0,
020
8,0,59,128,123,0,200,0,200,0,232,0,107,0,11,128,
021
9,128,9,128,111,0,238,0,8,0,8,14,14,9,0,0,
022
97,179,214,102,12,12,24,24,48,48,102,107,205,134,9,14,
023
28,10,0,0,56,0,124,0,108,0,108,0,108,0,56,0,
024
56,128,109,128,199,0,194,0,199,0,237,128,124,128,56,0,
025
2,5,5,3,0,10,128,192,192,192,64,5,14,14,6,0,
026
0,24,48,96,96,192,192,192,192,192,192,96,96,48,24,5,
027
14,14,6,0,0,192,96,48,48,24,24,24,24,24,24,56,
028
48,96,192,7,7,7,8,0,4,146,214,124,16,124,214,146,
029
8,10,10,10,0,1,8,24,24,24,127,254,24,24,24,16,
030
4,6,6,5,0,0,112,96,96,64,192,192,8,2,2,9,
031
0,5,127,254,3,3,3,4,0,0,224,160,224,8,14,14,
032
9,0,0,3,3,6,6,12,12,24,24,48,48,96,96,192,
033
192,9,14,28,10,0,0,62,0,127,0,227,128,197,128,197,
034
128,197,128,201,128,201,128,209,128,209,128,209,128,227,128,127,
035
0,62,0,9,14,28,10,0,0,12,0,28,0,60,0,124,
036
0,8,0,4,0,12,0,12,0,8,0,4,0,12,0,12,
037
0,127,128,255,128,9,14,28,10,0,0,126,0,255,0,195,
038
128,193,128,1,128,3,128,63,0,126,0,224,0,192,0,192,
039
0,192,0,223,128,191,0,9,14,28,10,0,0,126,0,255,
040
0,195,128,1,128,1,128,3,0,58,0,119,0,3,128,1,
041
128,1,128,3,128,255,0,126,0,9,14,28,10,0,0,2,
042
0,6,0,14,0,30,0,62,0,118,0,230,0,198,0,251,
043
128,247,0,6,0,6,0,6,0,4,0,9,14,28,10,0,
044
0,127,128,127,128,96,0,96,0,96,0,110,0,111,0,3,
045
128,1,128,1,128,1,128,195,0,255,0,124,0,9,14,28,
046
10,0,0,31,0,127,0,96,0,192,0,192,0,192,0,222,
047
0,223,0,195,128,193,128,193,128,227,0,127,0,60,0,9,
048
14,28,10,0,0,127,128,255,128,0,0,3,0,3,0,6,
049
0,6,0,12,0,12,0,24,0,24,0,48,0,48,0,32,
050
0,9,14,28,10,0,0,58,0,119,0,227,128,193,128,193,
051
128,99,0,54,0,111,0,227,128,193,128,193,128,227,128,119,
052
0,46,0,9,14,28,10,0,0,60,0,255,0,231,0,195,
053
128,193,128,193,128,225,128,253,128,125,128,1,128,3,128,7,
054
0,127,0,252,0,3,11,11,4,0,2,224,160,224,0,0,
055
0,0,0,224,160,224,4,13,13,5,0,0,112,80,112,0,
056
0,0,0,0,112,80,112,96,192,9,11,22,10,0,1,1,
057
128,3,128,15,0,28,0,120,0,224,0,120,0,28,0,15,
058
0,3,128,1,128,9,6,12,10,0,4,127,128,255,0,0,
059
0,0,0,127,128,255,0,9,11,22,10,0,1,192,0,224,
060
0,120,0,60,0,15,0,3,128,15,0,60,0,120,0,224,
061
0,192,0,8,14,14,9,0,0,116,238,135,3,3,6,14,
062
56,48,48,0,0,48,48,9,11,22,10,0,1,62,0,65,
063
0,128,128,154,128,166,128,162,128,162,128,166,128,155,0,64,
064
0,63,128,9,14,28,10,0,0,252,0,254,0,199,0,195,
065
128,193,128,193,128,193,128,253,128,253,128,193,128,193,128,193,
066
128,193,128,129,0,9,14,28,10,0,0,94,0,223,0,195,
067
128,193,128,193,128,195,128,255,0,255,0,195,128,193,128,193,
068
128,195,128,223,0,190,0,9,14,28,10,0,0,14,0,63,
069
0,115,128,97,128,192,0,192,0,192,0,192,0,192,0,192,
070
0,96,0,112,0,63,128,15,0,9,14,28,10,0,0,238,
071
0,111,0,99,128,97,128,97,128,97,128,97,128,97,128,97,
072
128,97,128,97,128,99,128,111,0,238,0,9,14,28,10,0,
073
0,95,128,223,0,192,0,192,0,192,0,192,0,223,0,222,
074
0,192,0,192,0,192,0,192,0,223,128,191,0,9,14,28,
075
10,0,0,95,128,223,0,192,0,192,0,192,0,192,0,223,
076
0,222,0,192,0,192,0,192,0,192,0,192,0,128,0,9,
077
14,28,10,0,0,63,128,127,128,225,128,192,0,192,0,192,
078
0,192,0,207,128,223,128,193,128,193,128,225,128,127,128,62,
079
0,9,14,28,10,0,0,129,0,193,128,193,128,193,128,193,
080
128,193,128,223,128,223,128,193,128,193,128,193,128,193,128,193,
081
128,64,128,8,14,14,10,1,0,254,127,24,24,24,24,24,
082
24,24,24,24,24,254,127,9,14,28,10,0,0,31,128,63,
083
128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,
084
128,1,128,195,128,255,0,62,0,9,14,28,10,0,0,65,
085
128,195,128,199,0,206,0,220,0,216,0,216,0,216,0,216,
086
0,220,0,206,0,199,0,195,128,65,128,9,14,28,10,0,
087
0,64,0,192,0,192,0,192,0,192,0,192,0,192,0,192,
088
0,192,0,192,0,192,0,192,0,255,128,255,0,9,14,28,
089
10,0,0,193,128,227,128,247,128,247,128,213,128,193,128,213,
090
128,221,128,221,128,201,128,193,128,193,128,193,128,129,0,9,
091
14,28,10,0,0,225,0,225,128,241,128,241,128,249,128,217,
092
128,221,128,205,128,205,128,197,128,197,128,193,128,193,128,128,
093
128,9,14,28,10,0,0,46,0,111,0,227,128,193,128,193,
094
128,193,128,193,128,193,128,193,128,193,128,193,128,227,128,123,
095
0,58,0,9,14,28,10,0,0,254,0,255,0,195,128,193,
096
128,193,128,195,128,223,0,222,0,192,0,192,0,192,0,192,
097
0,192,0,128,0,10,15,30,10,0,255,46,0,111,0,227,
098
128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,
099
128,227,0,123,128,58,192,0,192,9,14,28,10,0,0,126,
100
0,255,0,195,128,193,128,193,128,195,128,223,0,220,0,206,
101
0,199,0,195,128,193,128,193,128,129,0,9,14,28,10,0,
102
0,62,0,127,0,224,0,192,0,192,0,224,0,118,0,27,
103
0,3,128,1,128,1,128,3,128,255,128,127,0,9,14,28,
104
10,0,0,255,0,127,128,0,0,12,0,12,0,12,0,12,
105
0,12,0,12,0,12,0,12,0,12,0,12,0,4,0,9,
106
14,28,10,0,0,64,128,193,128,193,128,193,128,193,128,193,
107
128,193,128,193,128,193,128,193,128,193,128,99,0,127,0,62,
108
0,9,14,28,10,0,0,227,128,99,0,99,0,99,0,34,
109
0,54,0,54,0,54,0,20,0,28,0,28,0,28,0,8,
110
0,8,0,10,14,28,11,0,0,64,64,192,192,192,192,192,
111
192,192,192,192,192,204,192,204,192,204,192,222,192,222,192,211,
112
192,193,192,128,192,9,14,28,10,0,0,193,128,193,128,193,
113
128,99,0,99,0,50,0,56,0,28,0,14,0,103,0,99,
114
0,193,128,193,128,193,128,10,14,28,10,0,0,192,192,192,
115
192,97,128,97,128,51,0,63,0,30,0,12,0,8,0,4,
116
0,12,0,12,0,12,0,8,0,9,14,28,10,0,0,127,
117
128,255,128,1,128,3,128,7,0,6,0,4,0,16,0,48,
118
0,112,0,224,0,192,0,255,128,255,0,5,14,14,6,0,
119
0,248,192,192,192,192,192,192,192,192,192,192,192,192,248,9,
120
14,28,10,0,0,192,0,96,0,96,0,48,0,48,0,24,
121
0,24,0,12,0,12,0,6,0,6,0,3,0,3,0,1,
122
128,5,14,14,6,0,0,248,24,24,24,24,24,24,24,24,
123
24,24,24,24,248,9,6,12,10,0,8,8,0,28,0,54,
124
0,99,0,193,128,128,128,10,1,2,10,0,255,255,192,4,
125
3,3,5,0,12,224,96,48,8,11,11,9,0,0,124,127,
126
3,3,59,123,227,195,199,255,123,9,13,26,10,0,0,64,
127
0,192,0,192,0,192,0,192,0,222,0,223,0,195,128,193,
128
128,193,128,195,0,255,0,222,0,8,11,11,9,0,0,30,
129
63,115,224,192,192,192,224,240,127,30,9,13,26,10,0,0,
130
0,128,1,128,1,128,1,128,1,128,61,128,125,128,225,128,
131
193,128,193,128,227,128,127,128,61,128,8,11,11,9,0,0,
132
60,126,231,195,195,223,222,192,227,127,62,7,13,13,8,0,
133
0,62,124,96,96,252,248,96,96,96,96,96,96,32,8,13,
134
13,9,0,0,63,127,227,195,195,195,227,123,51,3,3,127,
135
254,8,13,13,9,0,0,64,192,192,192,222,223,195,195,195,
136
195,195,195,130,2,13,13,3,0,0,64,192,128,64,192,192,
137
192,192,192,192,192,192,128,5,14,14,6,0,255,16,24,24,
138
8,48,120,24,24,24,24,24,24,120,240,8,13,13,9,0,
139
0,64,192,192,198,198,204,216,216,216,204,198,199,131,2,14,
140
14,3,0,0,64,192,192,192,192,192,192,192,192,192,192,192,
141
192,128,9,11,22,10,0,0,91,0,219,128,201,128,201,128,
142
201,128,201,128,201,128,201,128,201,128,193,128,129,0,8,11,
143
11,9,0,0,94,223,195,195,195,195,195,195,195,195,130,8,
144
11,11,9,0,0,52,118,227,195,195,195,195,195,227,118,52,
145
8,11,11,9,0,0,252,254,199,195,199,222,220,192,192,192,
146
128,9,13,26,9,0,255,63,0,127,0,227,0,195,0,195,
147
0,195,0,251,0,123,0,3,0,3,0,3,128,3,128,3,
148
128,7,11,11,8,0,0,92,222,224,224,192,192,192,192,192,
149
192,128,8,11,11,9,0,0,62,127,192,192,240,102,15,3,
150
3,254,124,6,13,13,7,0,0,32,96,96,252,248,96,96,
151
96,96,96,96,124,60,8,11,11,9,0,0,65,195,195,195,
152
195,195,195,195,227,123,58,8,11,11,9,0,0,129,129,195,
153
195,102,102,102,36,60,24,24,9,11,22,10,0,0,128,128,
154
193,128,201,128,201,128,201,128,201,128,193,128,221,128,247,128,
155
227,128,65,0,8,11,11,9,0,0,195,102,102,52,24,24,
156
24,52,102,102,195,8,12,12,9,0,255,193,227,99,102,110,
157
44,12,24,24,48,240,224,8,11,11,9,0,0,127,255,7,
158
6,12,0,48,96,224,255,254,7,14,14,8,0,0,14,28,
159
24,24,24,48,224,224,48,24,24,24,28,14,2,16,16,5,
160
1,255,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
161
192,192,8,14,14,9,0,0,224,112,24,24,24,12,7,7,
162
12,24,24,24,112,224,10,5,10,11,0,4,48,192,120,192,
163
204,192,199,128,195,0,5,13,13,6,0,1,248,136,136,136,
164
136,136,136,136,136,136,136,136,248,8,11,11,9,0,0,252,
165
254,199,195,199,222,220,192,192,192,128,8,11,11,9,0,0,
166
30,63,115,224,192,192,192,224,240,127,30,8,11,11,9,0,
167
0,127,254,24,24,24,24,24,24,24,24,16,8,12,12,9,
168
0,255,193,227,99,102,110,44,12,24,24,48,240,224,8,12,
169
12,9,0,255,126,255,219,219,219,219,90,24,24,24,24,16,
170
8,11,11,9,0,0,195,102,102,52,24,24,24,52,102,102,
171
195,8,12,12,9,0,255,132,198,198,198,198,198,198,198,198,
172
254,255,3,8,11,11,9,0,0,65,195,195,195,231,127,63,
173
3,3,3,2,8,11,11,9,0,0,130,195,195,211,219,219,
174
219,219,219,203,255,8,12,12,9,0,255,130,195,195,211,219,
175
219,219,219,218,200,255,3,8,11,11,9,0,0,192,224,96,
176
96,108,110,103,99,103,126,124,8,11,11,9,0,0,130,195,
177
195,195,219,221,207,199,207,253,251,8,11,11,9,0,0,64,
178
192,192,192,220,222,199,195,199,254,252,8,11,11,9,0,0,
179
124,254,198,3,27,59,3,3,6,254,120,9,11,22,10,0,
180
0,71,0,207,128,205,128,205,128,221,128,221,128,205,128,205,
181
128,205,128,207,128,135,0,8,11,11,9,0,0,63,127,227,
182
195,227,123,59,51,51,115,226,9,14,28,10,0,0,252,0,
183
254,0,199,0,195,128,193,128,193,128,193,128,253,128,253,128,
184
193,128,193,128,193,128,193,128,129,0,9,14,28,10,0,0,
185
223,128,223,0,192,0,192,0,192,0,192,0,222,0,223,0,
186
195,128,193,128,193,128,195,128,255,0,254,0,9,14,28,10,
187
0,0,94,0,223,0,195,128,193,128,193,128,195,128,255,0,
188
255,0,195,128,193,128,193,128,195,128,223,0,190,0,9,14,
189
28,10,0,0,223,0,223,128,192,0,192,0,192,0,192,0,
190
192,0,192,0,192,0,192,0,192,0,192,0,192,0,128,0,
191
9,14,28,10,0,0,11,0,27,0,59,0,115,0,99,0,
192
99,0,99,0,99,0,99,0,99,0,123,0,251,128,193,128,
193
193,128,9,14,28,10,0,0,95,128,223,0,192,0,192,0,
194
192,0,192,0,223,0,222,0,192,0,192,0,192,0,192,0,
195
223,128,191,0,10,14,28,11,0,0,64,64,192,192,196,192,
196
204,192,204,192,109,128,109,128,109,128,109,128,204,192,204,192,
197
204,192,200,192,128,128,9,14,28,10,0,0,122,0,251,0,
198
131,128,1,128,1,128,3,0,58,0,123,0,3,128,1,128,
199
1,128,131,128,251,0,120,0,9,14,28,10,0,0,67,128,
200
195,128,199,128,199,128,199,128,205,128,205,128,205,128,217,128,
201
217,128,217,128,209,128,209,128,193,0,9,14,28,10,0,0,
202
91,128,219,128,215,128,199,128,199,128,205,128,205,128,205,128,
203
217,128,217,128,217,128,209,128,209,128,193,0,9,14,28,10,
204
0,0,65,128,195,128,199,0,206,0,220,0,216,0,216,0,
205
216,0,216,0,220,0,206,0,199,0,195,128,65,128,9,14,
206
28,10,0,0,220,0,222,0,199,0,195,128,193,128,193,128,
207
193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,
208
9,14,28,10,0,0,193,128,227,128,247,128,247,128,213,128,
209
193,128,213,128,221,128,221,128,201,128,193,128,193,128,193,128,
210
129,0,9,14,28,10,0,0,129,0,193,128,193,128,193,128,
211
193,128,193,128,223,128,223,128,193,128,193,128,193,128,193,128,
212
193,128,64,128,9,14,28,10,0,0,46,0,111,0,227,128,
213
193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,
214
227,128,123,0,58,0,9,14,28,10,0,0,223,128,223,128,
215
193,128,193,128,193,128,193,128,193,128,193,128,193,128,193,128,
216
193,128,193,128,193,128,129,0,9,14,28,10,0,0,254,0,
217
255,0,195,128,193,128,193,128,195,128,223,0,222,0,192,0,
218
192,0,192,0,192,0,192,0,128,0,9,14,28,10,0,0,
219
14,0,63,0,115,128,97,128,192,0,192,0,192,0,192,0,
220
192,0,192,0,96,0,112,0,63,128,15,0,9,14,28,10,
221
0,0,255,0,127,128,0,0,12,0,12,0,12,0,12,0,
222
12,0,12,0,12,0,12,0,12,0,12,0,4,0,9,14,
223
28,10,0,0,129,0,193,128,193,128,193,128,193,128,125,128,
224
61,128,1,128,1,128,1,128,193,128,225,128,127,0,62,0,
225
10,14,28,11,0,0,63,0,127,128,237,192,204,192,204,192,
226
237,192,109,128,45,0,12,0,12,0,12,0,12,0,12,0,
227
4,0,9,14,28,10,0,0,193,128,193,128,193,128,99,0,
228
99,0,50,0,56,0,28,0,14,0,103,0,99,0,193,128,
229
193,128,193,128,10,15,30,10,0,255,130,0,195,0,195,0,
230
195,0,195,0,195,0,195,0,195,0,195,0,195,0,195,0,
231
195,0,223,0,223,128,1,192,9,14,28,10,0,0,129,0,
232
193,128,193,128,193,128,193,128,193,128,225,128,125,128,61,128,
233
1,128,1,128,1,128,1,128,0,128,10,14,28,11,0,0,
234
128,128,192,192,192,192,192,192,200,192,204,192,204,192,204,192,
235
204,192,204,192,196,192,192,64,223,128,95,192,11,15,30,11,
236
0,255,128,128,192,192,192,192,192,192,200,192,204,192,204,192,
237
204,192,204,192,204,192,196,192,192,64,223,128,95,192,0,224,
238
9,14,28,10,0,0,224,0,224,0,96,0,96,0,96,0,
239
96,0,110,0,111,0,99,128,97,128,97,128,99,128,127,0,
240
62,0,10,14,28,11,0,0,128,128,192,192,192,192,192,192,
241
192,192,192,192,220,192,222,192,199,64,195,64,195,64,199,64,
242
254,192,124,192,9,14,28,10,0,0,128,0,192,0,192,0,
243
192,0,192,0,192,0,222,0,223,0,195,128,193,128,193,128,
244
195,128,255,0,254,0,9,14,28,10,0,0,62,0,127,0,
245
227,128,193,128,193,128,1,128,29,128,29,128,1,128,1,128,
246
193,128,227,128,127,0,62,0,10,14,28,11,0,0,71,0,
247
207,128,221,192,216,192,216,192,216,192,248,192,248,192,216,192,
248
216,192,216,192,221,192,207,128,135,0,9,14,28,10,0,0,
249
63,128,127,128,225,128,193,128,193,128,225,128,125,128,61,128,
250
29,128,57,128,113,128,225,128,193,128,129,0,8,11,11,9,
251
0,0,124,127,3,3,59,123,227,195,199,255,123,8,11,11,
252
9,0,0,7,31,56,112,102,207,195,195,231,126,60,8,11,
253
11,9,0,0,92,222,198,198,220,222,195,195,199,222,188,8,
254
11,11,9,0,0,254,255,192,192,192,192,192,192,192,192,128,
255
10,11,22,11,0,0,31,128,31,128,25,128,49,128,49,128,
256
49,128,1,128,127,192,255,192,192,192,192,192,8,11,11,9,
257
0,0,60,126,231,195,195,223,222,192,227,127,62,9,11,22,
258
10,0,0,64,128,201,128,201,128,107,0,54,0,54,0,107,
259
0,201,128,201,128,201,128,129,0,8,11,11,9,0,0,116,
260
246,195,7,126,62,6,3,7,254,124,8,11,11,9,0,0,
261
65,195,195,199,207,223,219,211,195,195,130,8,11,11,9,0,
262
0,89,219,211,199,207,223,219,211,195,195,130,8,11,11,9,
263
0,0,71,207,204,220,216,216,216,220,206,199,67,8,11,11,
264
9,0,0,27,59,115,227,195,195,195,195,195,195,195,9,11,
265
22,10,0,0,65,0,227,128,247,128,247,128,213,128,213,128,
266
213,128,213,128,193,128,193,128,129,0,8,11,11,9,0,0,
267
65,195,195,251,251,195,195,195,195,195,130,8,11,11,9,0,
268
0,52,118,227,195,195,195,195,195,227,118,52,8,11,11,9,
269
0,0,95,223,195,195,195,195,195,195,195,195,130,255,255,255,
270
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
271
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
272
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
273
255,255,255,255,255,255,255,255,255,255,255,255,255};
О вам) Или про вас. Про тебя, в общем. Законченная конструкция - это так редко бывает. Молодец. По ходу пьесы, кстати, быстренько разобрался с нокиевским экранчиком. Огромный респект титовичу и лешаку. Очень полезный и доступный материал получился.
Чтож, спасибо. По поводу нокиевского экранчика кстати, нашёл времечко и дописываю библиотеку для МК с килобайтной оперативкой и возможностью вывода граффики и текста. Пишу это к тому что в основе её принцип, похожий на U8G. Помню как "хаил" создателя за такую бибу, а когда надумал как "писать и рисовать" на экранчике без чтения из него, вспомнил, что где-то я это уже видел.... но это уже совсем другая история.
Коли уж зашёл в тему, как то рисовал для себя русский 10х14, тоже самое - может кому-нЬтЬ.....
а bdf-ки под него не сохранилось? Или, еще лучше, если есть 6х9 и 6х10... был бы благодарен
никак не могу раскурить как внутри эти шрифты рисовать чтобы после конвертации в код нормально отображались, везде в виде кода уже, подглядеть негде. Уже думаю написать софтинку для обратной конвертации в битмап
А чегож, остался. Я тоже когда завёлся с русским, нужен был исходник. Правда не докричался.
0001
STARTFONT 2.1
0002
COMMENT Exported by Fony v1.3.6
0003
FONT Verdana
0004
SIZE 16 96 96
0005
FONTBOUNDINGBOX 11 15 0 -1
0006
STARTPROPERTIES 6
0007
COPYRIGHT
""
0008
RESOLUTION_X 96
0009
RESOLUTION_Y 96
0010
FONT_ASCENT 15
0011
FONT_DESCENT 1
0012
DEFAULT_CHAR 0
0013
ENDPROPERTIES
0014
CHARS 160
0015
STARTCHAR 032
0016
ENCODING 32
0017
SWIDTH 576 0
0018
DWIDTH 8 0
0019
BBX 0 0 0 0
0020
BITMAP
0021
ENDCHAR
0022
STARTCHAR 033
0023
ENCODING 33
0024
SWIDTH 288 0
0025
DWIDTH 4 0
0026
BBX 2 14 1 0
0027
BITMAP
0028
40
0029
C0
0030
C0
0031
C0
0032
C0
0033
C0
0034
C0
0035
C0
0036
C0
0037
80
0038
00
0039
40
0040
C0
0041
80
0042
ENDCHAR
0043
STARTCHAR 034
0044
ENCODING 34
0045
SWIDTH 504 0
0046
DWIDTH 7 0
0047
BBX 6 5 0 9
0048
BITMAP
0049
44
0050
CC
0051
CC
0052
CC
0053
88
0054
ENDCHAR
0055
STARTCHAR 035
0056
ENCODING 35
0057
SWIDTH 792 0
0058
DWIDTH 11 0
0059
BBX 10 14 0 0
0060
BITMAP
0061
0880
0062
0880
0063
1100
0064
1100
0065
7FC0
0066
1100
0067
1100
0068
2200
0069
2200
0070
FF80
0071
2200
0072
2200
0073
4400
0074
4400
0075
ENDCHAR
0076
STARTCHAR 036
0077
ENCODING 36
0078
SWIDTH 720 0
0079
DWIDTH 10 0
0080
BBX 9 14 0 0
0081
BITMAP
0082
0800
0083
0800
0084
3B80
0085
7B00
0086
C800
0087
C800
0088
E800
0089
6B00
0090
0B80
0091
0980
0092
0980
0093
6F00
0094
EE00
0095
0800
0096
ENDCHAR
0097
STARTCHAR 037
0098
ENCODING 37
0099
SWIDTH 648 0
0100
DWIDTH 9 0
0101
BBX 8 14 0 0
0102
BITMAP
0103
61
0104
B3
0105
D6
0106
66
0107
0C
0108
0C
0109
18
0110
18
0111
30
0112
30
0113
66
0114
6B
0115
CD
0116
86
0117
ENDCHAR
0118
STARTCHAR 038
0119
ENCODING 38
0120
SWIDTH 720 0
0121
DWIDTH 10 0
0122
BBX 9 14 0 0
0123
BITMAP
0124
3800
0125
7C00
0126
6C00
0127
6C00
0128
6C00
0129
3800
0130
3880
0131
6D80
0132
C700
0133
C200
0134
C700
0135
ED80
0136
7C80
0137
3800
0138
ENDCHAR
0139
STARTCHAR 039
0140
ENCODING 39
0141
SWIDTH 216 0
0142
DWIDTH 3 0
0143
BBX 2 5 0 10
0144
BITMAP
0145
80
0146
C0
0147
C0
0148
C0
0149
40
0150
ENDCHAR
0151
STARTCHAR 040
0152
ENCODING 40
0153
SWIDTH 432 0
0154
DWIDTH 6 0
0155
BBX 5 14 0 0
0156
BITMAP
0157
18
0158
30
0159
60
0160
60
0161
C0
0162
C0
0163
C0
0164
C0
0165
C0
0166
C0
0167
60
0168
60
0169
30
0170
18
0171
ENDCHAR
0172
STARTCHAR 041
0173
ENCODING 41
0174
SWIDTH 432 0
0175
DWIDTH 6 0
0176
BBX 5 14 0 0
0177
BITMAP
0178
C0
0179
60
0180
30
0181
30
0182
18
0183
18
0184
18
0185
18
0186
18
0187
18
0188
38
0189
30
0190
60
0191
C0
0192
ENDCHAR
0193
STARTCHAR 042
0194
ENCODING 42
0195
SWIDTH 576 0
0196
DWIDTH 8 0
0197
BBX 7 7 0 4
0198
BITMAP
0199
92
0200
D6
0201
7C
0202
10
0203
7C
0204
D6
0205
92
0206
ENDCHAR
0207
STARTCHAR 043
0208
ENCODING 43
0209
SWIDTH 720 0
0210
DWIDTH 10 0
0211
BBX 8 10 0 1
0212
BITMAP
0213
08
0214
18
0215
18
0216
18
0217
7F
0218
FE
0219
18
0220
18
0221
18
0222
10
0223
ENDCHAR
0224
STARTCHAR 044
0225
ENCODING 44
0226
SWIDTH 360 0
0227
DWIDTH 5 0
0228
BBX 4 6 0 0
0229
BITMAP
0230
70
0231
60
0232
60
0233
40
0234
C0
0235
C0
0236
ENDCHAR
0237
STARTCHAR 045
0238
ENCODING 45
0239
SWIDTH 648 0
0240
DWIDTH 9 0
0241
BBX 8 2 0 5
0242
BITMAP
0243
7F
0244
FE
0245
ENDCHAR
0246
STARTCHAR 046
0247
ENCODING 46
0248
SWIDTH 288 0
0249
DWIDTH 4 0
0250
BBX 3 3 0 0
0251
BITMAP
0252
E0
0253
A0
0254
E0
0255
ENDCHAR
0256
STARTCHAR 047
0257
ENCODING 47
0258
SWIDTH 648 0
0259
DWIDTH 9 0
0260
BBX 8 14 0 0
0261
BITMAP
0262
03
0263
03
0264
06
0265
06
0266
0C
0267
0C
0268
18
0269
18
0270
30
0271
30
0272
60
0273
60
0274
C0
0275
C0
0276
ENDCHAR
0277
STARTCHAR 048
0278
ENCODING 48
0279
SWIDTH 720 0
0280
DWIDTH 10 0
0281
BBX 9 14 0 0
0282
BITMAP
0283
3E00
0284
7F00
0285
E380
0286
C580
0287
C580
0288
C580
0289
C980
0290
C980
0291
D180
0292
D180
0293
D180
0294
E380
0295
7F00
0296
3E00
0297
ENDCHAR
0298
STARTCHAR 049
0299
ENCODING 49
0300
SWIDTH 720 0
0301
DWIDTH 10 0
0302
BBX 9 14 0 0
0303
BITMAP
0304
0C00
0305
1C00
0306
3C00
0307
7C00
0308
0800
0309
0400
0310
0C00
0311
0C00
0312
0800
0313
0400
0314
0C00
0315
0C00
0316
7F80
0317
FF80
0318
ENDCHAR
0319
STARTCHAR 050
0320
ENCODING 50
0321
SWIDTH 720 0
0322
DWIDTH 10 0
0323
BBX 9 14 0 0
0324
BITMAP
0325
7E00
0326
FF00
0327
C380
0328
C180
0329
0180
0330
0380
0331
3F00
0332
7E00
0333
E000
0334
C000
0335
C000
0336
C000
0337
DF80
0338
BF00
0339
ENDCHAR
0340
STARTCHAR 051
0341
ENCODING 51
0342
SWIDTH 720 0
0343
DWIDTH 10 0
0344
BBX 9 14 0 0
0345
BITMAP
0346
7E00
0347
FF00
0348
C380
0349
0180
0350
0180
0351
0300
0352
3A00
0353
7700
0354
0380
0355
0180
0356
0180
0357
0380
0358
FF00
0359
7E00
0360
ENDCHAR
0361
STARTCHAR 052
0362
ENCODING 52
0363
SWIDTH 720 0
0364
DWIDTH 10 0
0365
BBX 9 14 0 0
0366
BITMAP
0367
0200
0368
0600
0369
0E00
0370
1E00
0371
3E00
0372
7600
0373
E600
0374
C600
0375
FB80
0376
F700
0377
0600
0378
0600
0379
0600
0380
0400
0381
ENDCHAR
0382
STARTCHAR 053
0383
ENCODING 53
0384
SWIDTH 720 0
0385
DWIDTH 10 0
0386
BBX 9 14 0 0
0387
BITMAP
0388
7F80
0389
7F80
0390
6000
0391
6000
0392
6000
0393
6E00
0394
6F00
0395
0380
0396
0180
0397
0180
0398
0180
0399
C300
0400
FF00
0401
7C00
0402
ENDCHAR
0403
STARTCHAR 054
0404
ENCODING 54
0405
SWIDTH 720 0
0406
DWIDTH 10 0
0407
BBX 9 14 0 0
0408
BITMAP
0409
1F00
0410
7F00
0411
6000
0412
C000
0413
C000
0414
C000
0415
DE00
0416
DF00
0417
C380
0418
C180
0419
C180
0420
E300
0421
7F00
0422
3C00
0423
ENDCHAR
0424
STARTCHAR 055
0425
ENCODING 55
0426
SWIDTH 720 0
0427
DWIDTH 10 0
0428
BBX 9 14 0 0
0429
BITMAP
0430
7F80
0431
FF80
0432
0000
0433
0300
0434
0300
0435
0600
0436
0600
0437
0C00
0438
0C00
0439
1800
0440
1800
0441
3000
0442
3000
0443
2000
0444
ENDCHAR
0445
STARTCHAR 056
0446
ENCODING 56
0447
SWIDTH 720 0
0448
DWIDTH 10 0
0449
BBX 9 14 0 0
0450
BITMAP
0451
3A00
0452
7700
0453
E380
0454
C180
0455
C180
0456
6300
0457
3600
0458
6F00
0459
E380
0460
C180
0461
C180
0462
E380
0463
7700
0464
2E00
0465
ENDCHAR
0466
STARTCHAR 057
0467
ENCODING 57
0468
SWIDTH 720 0
0469
DWIDTH 10 0
0470
BBX 9 14 0 0
0471
BITMAP
0472
3C00
0473
FF00
0474
E700
0475
C380
0476
C180
0477
C180
0478
E180
0479
FD80
0480
7D80
0481
0180
0482
0380
0483
0700
0484
7F00
0485
FC00
0486
ENDCHAR
0487
STARTCHAR 058
0488
ENCODING 58
0489
SWIDTH 288 0
0490
DWIDTH 4 0
0491
BBX 3 11 0 2
0492
BITMAP
0493
E0
0494
A0
0495
E0
0496
00
0497
00
0498
00
0499
00
0500
00
0501
E0
0502
A0
0503
E0
0504
ENDCHAR
0505
STARTCHAR 059
0506
ENCODING 59
0507
SWIDTH 360 0
0508
DWIDTH 5 0
0509
BBX 4 13 0 0
0510
BITMAP
0511
70
0512
50
0513
70
0514
00
0515
00
0516
00
0517
00
0518
00
0519
70
0520
50
0521
70
0522
60
0523
C0
0524
ENDCHAR
0525
STARTCHAR 060
0526
ENCODING 60
0527
SWIDTH 720 0
0528
DWIDTH 10 0
0529
BBX 9 11 0 1
0530
BITMAP
0531
0180
0532
0380
0533
0F00
0534
1C00
0535
7800
0536
E000
0537
7800
0538
1C00
0539
0F00
0540
0380
0541
0180
0542
ENDCHAR
0543
STARTCHAR 061
0544
ENCODING 61
0545
SWIDTH 720 0
0546
DWIDTH 10 0
0547
BBX 9 6 0 4
0548
BITMAP
0549
7F80
0550
FF00
0551
0000
0552
0000
0553
7F80
0554
FF00
0555
ENDCHAR
0556
STARTCHAR 062
0557
ENCODING 62
0558
SWIDTH 720 0
0559
DWIDTH 10 0
0560
BBX 9 11 0 1
0561
BITMAP
0562
C000
0563
E000
0564
7800
0565
3C00
0566
0F00
0567
0380
0568
0F00
0569
3C00
0570
7800
0571
E000
0572
C000
0573
ENDCHAR
0574
STARTCHAR 063
0575
ENCODING 63
0576
SWIDTH 648 0
0577
DWIDTH 9 0
0578
BBX 8 14 0 0
0579
BITMAP
0580
74
0581
EE
0582
87
0583
03
0584
03
0585
06
0586
0E
0587
38
0588
30
0589
30
0590
00
0591
00
0592
30
0593
30
0594
ENDCHAR
0595
STARTCHAR 064
0596
ENCODING 64
0597
SWIDTH 720 0
0598
DWIDTH 10 0
0599
BBX 9 11 0 1
0600
BITMAP
0601
3E00
0602
4100
0603
8080
0604
9A80
0605
A680
0606
A280
0607
A280
0608
A680
0609
9B00
0610
4000
0611
3F80
0612
ENDCHAR
0613
STARTCHAR 065
0614
ENCODING 65
0615
SWIDTH 720 0
0616
DWIDTH 10 0
0617
BBX 9 14 0 0
0618
BITMAP
0619
FC00
0620
FE00
0621
C700
0622
C380
0623
C180
0624
C180
0625
C180
0626
FD80
0627
FD80
0628
C180
0629
C180
0630
C180
0631
C180
0632
8100
0633
ENDCHAR
0634
STARTCHAR 066
0635
ENCODING 66
0636
SWIDTH 720 0
0637
DWIDTH 10 0
0638
BBX 9 14 0 0
0639
BITMAP
0640
5E00
0641
DF00
0642
C380
0643
C180
0644
C180
0645
C380
0646
FF00
0647
FF00
0648
C380
0649
C180
0650
C180
0651
C380
0652
DF00
0653
BE00
0654
ENDCHAR
0655
STARTCHAR 067
0656
ENCODING 67
0657
SWIDTH 720 0
0658
DWIDTH 10 0
0659
BBX 9 14 0 0
0660
BITMAP
0661
0E00
0662
3F00
0663
7380
0664
6180
0665
C000
0666
C000
0667
C000
0668
C000
0669
C000
0670
C000
0671
6000
0672
7000
0673
3F80
0674
0F00
0675
ENDCHAR
0676
STARTCHAR 068
0677
ENCODING 68
0678
SWIDTH 720 0
0679
DWIDTH 10 0
0680
BBX 9 14 0 0
0681
BITMAP
0682
EE00
0683
6F00
0684
6380
0685
6180
0686
6180
0687
6180
0688
6180
0689
6180
0690
6180
0691
6180
0692
6180
0693
6380
0694
6F00
0695
EE00
0696
ENDCHAR
0697
STARTCHAR 069
0698
ENCODING 69
0699
SWIDTH 720 0
0700
DWIDTH 10 0
0701
BBX 9 14 0 0
0702
BITMAP
0703
5F80
0704
DF00
0705
C000
0706
C000
0707
C000
0708
C000
0709
DF00
0710
DE00
0711
C000
0712
C000
0713
C000
0714
C000
0715
DF80
0716
BF00
0717
ENDCHAR
0718
STARTCHAR 070
0719
ENCODING 70
0720
SWIDTH 720 0
0721
DWIDTH 10 0
0722
BBX 9 14 0 0
0723
BITMAP
0724
5F80
0725
DF00
0726
C000
0727
C000
0728
C000
0729
C000
0730
DF00
0731
DE00
0732
C000
0733
C000
0734
C000
0735
C000
0736
C000
0737
8000
0738
ENDCHAR
0739
STARTCHAR 071
0740
ENCODING 71
0741
SWIDTH 720 0
0742
DWIDTH 10 0
0743
BBX 9 14 0 0
0744
BITMAP
0745
3F80
0746
7F80
0747
E180
0748
C000
0749
C000
0750
C000
0751
C000
0752
CF80
0753
DF80
0754
C180
0755
C180
0756
E180
0757
7F80
0758
3E00
0759
ENDCHAR
0760
STARTCHAR 072
0761
ENCODING 72
0762
SWIDTH 720 0
0763
DWIDTH 10 0
0764
BBX 9 14 0 0
0765
BITMAP
0766
8100
0767
C180
0768
C180
0769
C180
0770
C180
0771
C180
0772
DF80
0773
DF80
0774
C180
0775
C180
0776
C180
0777
C180
0778
C180
0779
4080
0780
ENDCHAR
0781
STARTCHAR 073
0782
ENCODING 73
0783
SWIDTH 720 0
0784
DWIDTH 10 0
0785
BBX 8 14 1 0
0786
BITMAP
0787
FE
0788
7F
0789
18
0790
18
0791
18
0792
18
0793
18
0794
18
0795
18
0796
18
0797
18
0798
18
0799
FE
0800
7F
0801
ENDCHAR
0802
STARTCHAR 074
0803
ENCODING 74
0804
SWIDTH 720 0
0805
DWIDTH 10 0
0806
BBX 9 14 0 0
0807
BITMAP
0808
1F80
0809
3F80
0810
0180
0811
0180
0812
0180
0813
0180
0814
0180
0815
0180
0816
0180
0817
0180
0818
0180
0819
C380
0820
FF00
0821
3E00
0822
ENDCHAR
0823
STARTCHAR 075
0824
ENCODING 75
0825
SWIDTH 720 0
0826
DWIDTH 10 0
0827
BBX 9 14 0 0
0828
BITMAP
0829
4180
0830
C380
0831
C700
0832
CE00
0833
DC00
0834
D800
0835
D800
0836
D800
0837
D800
0838
DC00
0839
CE00
0840
C700
0841
C380
0842
4180
0843
ENDCHAR
0844
STARTCHAR 076
0845
ENCODING 76
0846
SWIDTH 720 0
0847
DWIDTH 10 0
0848
BBX 9 14 0 0
0849
BITMAP
0850
4000
0851
C000
0852
C000
0853
C000
0854
C000
0855
C000
0856
C000
0857
C000
0858
C000
0859
C000
0860
C000
0861
C000
0862
FF80
0863
FF00
0864
ENDCHAR
0865
STARTCHAR 077
0866
ENCODING 77
0867
SWIDTH 720 0
0868
DWIDTH 10 0
0869
BBX 9 14 0 0
0870
BITMAP
0871
C180
0872
E380
0873
F780
0874
F780
0875
D580
0876
C180
0877
D580
0878
DD80
0879
DD80
0880
C980
0881
C180
0882
C180
0883
C180
0884
8100
0885
ENDCHAR
0886
STARTCHAR 078
0887
ENCODING 78
0888
SWIDTH 720 0
0889
DWIDTH 10 0
0890
BBX 9 14 0 0
0891
BITMAP
0892
E100
0893
E180
0894
F180
0895
F180
0896
F980
0897
D980
0898
DD80
0899
CD80
0900
CD80
0901
C580
0902
C580
0903
C180
0904
C180
0905
8080
0906
ENDCHAR
0907
STARTCHAR 079
0908
ENCODING 79
0909
SWIDTH 720 0
0910
DWIDTH 10 0
0911
BBX 9 14 0 0
0912
BITMAP
0913
2E00
0914
6F00
0915
E380
0916
C180
0917
C180
0918
C180
0919
C180
0920
C180
0921
C180
0922
C180
0923
C180
0924
E380
0925
7B00
0926
3A00
0927
ENDCHAR
0928
STARTCHAR 080
0929
ENCODING 80
0930
SWIDTH 720 0
0931
DWIDTH 10 0
0932
BBX 9 14 0 0
0933
BITMAP
0934
FE00
0935
FF00
0936
C380
0937
C180
0938
C180
0939
C380
0940
DF00
0941
DE00
0942
C000
0943
C000
0944
C000
0945
C000
0946
C000
0947
8000
0948
ENDCHAR
0949
STARTCHAR 081
0950
ENCODING 81
0951
SWIDTH 720 0
0952
DWIDTH 10 0
0953
BBX 10 15 0 -1
0954
BITMAP
0955
2E00
0956
6F00
0957
E380
0958
C180
0959
C180
0960
C180
0961
C180
0962
C180
0963
C180
0964
C180
0965
C180
0966
E300
0967
7B80
0968
3AC0
0969
00C0
0970
ENDCHAR
0971
STARTCHAR 082
0972
ENCODING 82
0973
SWIDTH 720 0
0974
DWIDTH 10 0
0975
BBX 9 14 0 0
0976
BITMAP
0977
7E00
0978
FF00
0979
C380
0980
C180
0981
C180
0982
C380
0983
DF00
0984
DC00
0985
CE00
0986
C700
0987
C380
0988
C180
0989
C180
0990
8100
0991
ENDCHAR
0992
STARTCHAR 083
0993
ENCODING 83
0994
SWIDTH 720 0
0995
DWIDTH 10 0
0996
BBX 9 14 0 0
0997
BITMAP
0998
3E00
0999
7F00
1000
E000
1001
C000
1002
C000
1003
E000
1004
7600
1005
1B00
1006
0380
1007
0180
1008
0180
1009
0380
1010
FF80
1011
7F00
1012
ENDCHAR
1013
STARTCHAR 084
1014
ENCODING 84
1015
SWIDTH 720 0
1016
DWIDTH 10 0
1017
BBX 9 14 0 0
1018
BITMAP
1019
FF00
1020
7F80
1021
0000
1022
0C00
1023
0C00
1024
0C00
1025
0C00
1026
0C00
1027
0C00
1028
0C00
1029
0C00
1030
0C00
1031
0C00
1032
0400
1033
ENDCHAR
1034
STARTCHAR 085
1035
ENCODING 85
1036
SWIDTH 720 0
1037
DWIDTH 10 0
1038
BBX 9 14 0 0
1039
BITMAP
1040
4080
1041
C180
1042
C180
1043
C180
1044
C180
1045
C180
1046
C180
1047
C180
1048
C180
1049
C180
1050
C180
1051
6300
1052
7F00
1053
3E00
1054
ENDCHAR
1055
STARTCHAR 086
1056
ENCODING 86
1057
SWIDTH 720 0
1058
DWIDTH 10 0
1059
BBX 9 14 0 0
1060
BITMAP
1061
E380
1062
6300
1063
6300
1064
6300
1065
2200
1066
3600
1067
3600
1068
3600
1069
1400
1070
1C00
1071
1C00
1072
1C00
1073
0800
1074
0800
1075
ENDCHAR
1076
STARTCHAR 087
1077
ENCODING 87
1078
SWIDTH 792 0
1079
DWIDTH 11 0
1080
BBX 10 14 0 0
1081
BITMAP
1082
4040
1083
C0C0
1084
C0C0
1085
C0C0
1086
C0C0
1087
C0C0
1088
CCC0
1089
CCC0
1090
CCC0
1091
DEC0
1092
DEC0
1093
D3C0
1094
C1C0
1095
80C0
1096
ENDCHAR
1097
STARTCHAR 088
1098
ENCODING 88
1099
SWIDTH 720 0
1100
DWIDTH 10 0
1101
BBX 9 14 0 0
1102
BITMAP
1103
C180
1104
C180
1105
C180
1106
6300
1107
6300
1108
3200
1109
3800
1110
1C00
1111
0E00
1112
6700
1113
6300
1114
C180
1115
C180
1116
C180
1117
ENDCHAR
1118
STARTCHAR 089
1119
ENCODING 89
1120
SWIDTH 720 0
1121
DWIDTH 10 0
1122
BBX 10 14 0 0
1123
BITMAP
1124
C0C0
1125
C0C0
1126
6180
1127
6180
1128
3300
1129
3F00
1130
1E00
1131
0C00
1132
0800
1133
0400
1134
0C00
1135
0C00
1136
0C00
1137
0800
1138
ENDCHAR
1139
STARTCHAR 090
1140
ENCODING 90
1141
SWIDTH 720 0
1142
DWIDTH 10 0
1143
BBX 9 14 0 0
1144
BITMAP
1145
7F80
1146
FF80
1147
0180
1148
0380
1149
0700
1150
0600
1151
0400
1152
1000
1153
3000
1154
7000
1155
E000
1156
C000
1157
FF80
1158
FF00
1159
ENDCHAR
1160
STARTCHAR 091
1161
ENCODING 91
1162
SWIDTH 432 0
1163
DWIDTH 6 0
1164
BBX 5 14 0 0
1165
BITMAP
1166
F8
1167
C0
1168
C0
1169
C0
1170
C0
1171
C0
1172
C0
1173
C0
1174
C0
1175
C0
1176
C0
1177
C0
1178
C0
1179
F8
1180
ENDCHAR
1181
STARTCHAR 092
1182
ENCODING 92
1183
SWIDTH 720 0
1184
DWIDTH 10 0
1185
BBX 9 14 0 0
1186
BITMAP
1187
C000
1188
6000
1189
6000
1190
3000
1191
3000
1192
1800
1193
1800
1194
0C00
1195
0C00
1196
0600
1197
0600
1198
0300
1199
0300
1200
0180
1201
ENDCHAR
1202
STARTCHAR 093
1203
ENCODING 93
1204
SWIDTH 432 0
1205
DWIDTH 6 0
1206
BBX 5 14 0 0
1207
BITMAP
1208
F8
1209
18
1210
18
1211
18
1212
18
1213
18
1214
18
1215
18
1216
18
1217
18
1218
18
1219
18
1220
18
1221
F8
1222
ENDCHAR
1223
STARTCHAR 094
1224
ENCODING 94
1225
SWIDTH 720 0
1226
DWIDTH 10 0
1227
BBX 9 6 0 8
1228
BITMAP
1229
0800
1230
1C00
1231
3600
1232
6300
1233
C180
1234
8080
1235
ENDCHAR
1236
STARTCHAR 095
1237
ENCODING 95
1238
SWIDTH 720 0
1239
DWIDTH 10 0
1240
BBX 10 1 0 -1
1241
BITMAP
1242
FFC0
1243
ENDCHAR
1244
STARTCHAR 096
1245
ENCODING 96
1246
SWIDTH 360 0
1247
DWIDTH 5 0
1248
BBX 4 3 0 12
1249
BITMAP
1250
E0
1251
60
1252
30
1253
ENDCHAR
1254
STARTCHAR 097
1255
ENCODING 97
1256
SWIDTH 648 0
1257
DWIDTH 9 0
1258
BBX 8 11 0 0
1259
BITMAP
1260
7C
1261
7F
1262
03
1263
03
1264
3B
1265
7B
1266
E3
1267
C3
1268
C7
1269
FF
1270
7B
1271
ENDCHAR
1272
STARTCHAR 098
1273
ENCODING 98
1274
SWIDTH 720 0
1275
DWIDTH 10 0
1276
BBX 9 13 0 0
1277
BITMAP
1278
4000
1279
C000
1280
C000
1281
C000
1282
C000
1283
DE00
1284
DF00
1285
C380
1286
C180
1287
C180
1288
C300
1289
FF00
1290
DE00
1291
ENDCHAR
1292
STARTCHAR 099
1293
ENCODING 99
1294
SWIDTH 648 0
1295
DWIDTH 9 0
1296
BBX 8 11 0 0
1297
BITMAP
1298
1E
1299
3F
1300
73
1301
E0
1302
C0
1303
C0
1304
C0
1305
E0
1306
F0
1307
7F
1308
1E
1309
ENDCHAR
1310
STARTCHAR 100
1311
ENCODING 100
1312
SWIDTH 720 0
1313
DWIDTH 10 0
1314
BBX 9 13 0 0
1315
BITMAP
1316
0080
1317
0180
1318
0180
1319
0180
1320
0180
1321
3D80
1322
7D80
1323
E180
1324
C180
1325
C180
1326
E380
1327
7F80
1328
3D80
1329
ENDCHAR
1330
STARTCHAR 101
1331
ENCODING 101
1332
SWIDTH 648 0
1333
DWIDTH 9 0
1334
BBX 8 11 0 0
1335
BITMAP
1336
3C
1337
7E
1338
E7
1339
C3
1340
C3
1341
DF
1342
DE
1343
C0
1344
E3
1345
7F
1346
3E
1347
ENDCHAR
1348
STARTCHAR 102
1349
ENCODING 102
1350
SWIDTH 576 0
1351
DWIDTH 8 0
1352
BBX 7 13 0 0
1353
BITMAP
1354
3E
1355
7C
1356
60
1357
60
1358
FC
1359
F8
1360
60
1361
60
1362
60
1363
60
1364
60
1365
60
1366
20
1367
ENDCHAR
1368
STARTCHAR 103
1369
ENCODING 103
1370
SWIDTH 648 0
1371
DWIDTH 9 0
1372
BBX 8 13 0 0
1373
BITMAP
1374
3F
1375
7F
1376
E3
1377
C3
1378
C3
1379
C3
1380
E3
1381
7B
1382
33
1383
03
1384
03
1385
7F
1386
FE
1387
ENDCHAR
1388
STARTCHAR 104
1389
ENCODING 104
1390
SWIDTH 648 0
1391
DWIDTH 9 0
1392
BBX 8 13 0 0
1393
BITMAP
1394
40
1395
C0
1396
C0
1397
C0
1398
DE
1399
DF
1400
C3
1401
C3
1402
C3
1403
C3
1404
C3
1405
C3
1406
82
1407
ENDCHAR
1408
STARTCHAR 105
1409
ENCODING 105
1410
SWIDTH 216 0
1411
DWIDTH 3 0
1412
BBX 2 13 0 0
1413
BITMAP
1414
40
1415
C0
1416
80
1417
40
1418
C0
1419
C0
1420
C0
1421
C0
1422
C0
1423
C0
1424
C0
1425
C0
1426
80
1427
ENDCHAR
1428
STARTCHAR 106
1429
ENCODING 106
1430
SWIDTH 432 0
1431
DWIDTH 6 0
1432
BBX 5 14 0 -1
1433
BITMAP
1434
10
1435
18
1436
18
1437
08
1438
30
1439
78
1440
18
1441
18
1442
18
1443
18
1444
18
1445
18
1446
78
1447
F0
1448
ENDCHAR
1449
STARTCHAR 107
1450
ENCODING 107
1451
SWIDTH 648 0
1452
DWIDTH 9 0
1453
BBX 8 13 0 0
1454
BITMAP
1455
40
1456
C0
1457
C0
1458
C6
1459
C6
1460
CC
1461
D8
1462
D8
1463
D8
1464
CC
1465
C6
1466
C7
1467
83
1468
ENDCHAR
1469
STARTCHAR 108
1470
ENCODING 108
1471
SWIDTH 216 0
1472
DWIDTH 3 0
1473
BBX 2 14 0 0
1474
BITMAP
1475
40
1476
C0
1477
C0
1478
C0
1479
C0
1480
C0
1481
C0
1482
C0
1483
C0
1484
C0
1485
C0
1486
C0
1487
C0
1488
80
1489
ENDCHAR
1490
STARTCHAR 109
1491
ENCODING 109
1492
SWIDTH 720 0
1493
DWIDTH 10 0
1494
BBX 9 11 0 0
1495
BITMAP
1496
5B00
1497
DB80
1498
C980
1499
C980
1500
C980
1501
C980
1502
C980
1503
C980
1504
C980
1505
C180
1506
8100
1507
ENDCHAR
1508
STARTCHAR 110
1509
ENCODING 110
1510
SWIDTH 648 0
1511
DWIDTH 9 0
1512
BBX 8 11 0 0
1513
BITMAP
1514
5E
1515
DF
1516
C3
1517
C3
1518
C3
1519
C3
1520
C3
1521
C3
1522
C3
1523
C3
1524
82
1525
ENDCHAR
1526
STARTCHAR 111
1527
ENCODING 111
1528
SWIDTH 648 0
1529
DWIDTH 9 0
1530
BBX 8 11 0 0
1531
BITMAP
1532
34
1533
76
1534
E3
1535
C3
1536
C3
1537
C3
1538
C3
1539
C3
1540
E3
1541
76
1542
34
1543
ENDCHAR
1544
STARTCHAR 112
1545
ENCODING 112
1546
SWIDTH 648 0
1547
DWIDTH 9 0
1548
BBX 8 11 0 0
1549
BITMAP
1550
FC
1551
FE
1552
C7
1553
C3
1554
C7
1555
DE
1556
DC
1557
C0
1558
C0
1559
C0
1560
80
1561
ENDCHAR
1562
STARTCHAR 113
1563
ENCODING 113
1564
SWIDTH 648 0
1565
DWIDTH 9 0
1566
BBX 9 13 0 -1
1567
BITMAP
1568
3F00
1569
7F00
1570
E300
1571
C300
1572
C300
1573
C300
1574
FB00
1575
7B00
1576
0300
1577
0300
1578
0380
1579
0380
1580
0380
1581
ENDCHAR
1582
STARTCHAR 114
1583
ENCODING 114
1584
SWIDTH 576 0
1585
DWIDTH 8 0
1586
BBX 7 11 0 0
1587
BITMAP
1588
5C
1589
DE
1590
E0
1591
E0
1592
C0
1593
C0
1594
C0
1595
C0
1596
C0
1597
C0
1598
80
1599
ENDCHAR
1600
STARTCHAR 115
1601
ENCODING 115
1602
SWIDTH 648 0
1603
DWIDTH 9 0
1604
BBX 8 11 0 0
1605
BITMAP
1606
3E
1607
7F
1608
C0
1609
C0
1610
F0
1611
66
1612
0F
1613
03
1614
03
1615
FE
1616
7C
1617
ENDCHAR
1618
STARTCHAR 116
1619
ENCODING 116
1620
SWIDTH 504 0
1621
DWIDTH 7 0
1622
BBX 6 13 0 0
1623
BITMAP
1624
20
1625
60
1626
60
1627
FC
1628
F8
1629
60
1630
60
1631
60
1632
60
1633
60
1634
60
1635
7C
1636
3C
1637
ENDCHAR
1638
STARTCHAR 117
1639
ENCODING 117
1640
SWIDTH 648 0
1641
DWIDTH 9 0
1642
BBX 8 11 0 0
1643
BITMAP
1644
41
1645
C3
1646
C3
1647
C3
1648
C3
1649
C3
1650
C3
1651
C3
1652
E3
1653
7B
1654
3A
1655
ENDCHAR
1656
STARTCHAR 118
1657
ENCODING 118
1658
SWIDTH 648 0
1659
DWIDTH 9 0
1660
BBX 8 11 0 0
1661
BITMAP
1662
81
1663
81
1664
C3
1665
C3
1666
66
1667
66
1668
66
1669
24
1670
3C
1671
18
1672
18
1673
ENDCHAR
1674
STARTCHAR 119
1675
ENCODING 119
1676
SWIDTH 720 0
1677
DWIDTH 10 0
1678
BBX 9 11 0 0
1679
BITMAP
1680
8080
1681
C180
1682
C980
1683
C980
1684
C980
1685
C980
1686
C180
1687
DD80
1688
F780
1689
E380
1690
4100
1691
ENDCHAR
1692
STARTCHAR 120
1693
ENCODING 120
1694
SWIDTH 648 0
1695
DWIDTH 9 0
1696
BBX 8 11 0 0
1697
BITMAP
1698
C3
1699
66
1700
66
1701
34
1702
18
1703
18
1704
18
1705
34
1706
66
1707
66
1708
C3
1709
ENDCHAR
1710
STARTCHAR 121
1711
ENCODING 121
1712
SWIDTH 648 0
1713
DWIDTH 9 0
1714
BBX 8 12 0 -1
1715
BITMAP
1716
C1
1717
E3
1718
63
1719
66
1720
6E
1721
2C
1722
0C
1723
18
1724
18
1725
30
1726
F0
1727
E0
1728
ENDCHAR
1729
STARTCHAR 122
1730
ENCODING 122
1731
SWIDTH 648 0
1732
DWIDTH 9 0
1733
BBX 8 11 0 0
1734
BITMAP
1735
7F
1736
FF
1737
07
1738
06
1739
0C
1740
00
1741
30
1742
60
1743
E0
1744
FF
1745
FE
1746
ENDCHAR
1747
STARTCHAR 123
1748
ENCODING 123
1749
SWIDTH 576 0
1750
DWIDTH 8 0
1751
BBX 7 14 0 0
1752
BITMAP
1753
0E
1754
1C
1755
18
1756
18
1757
18
1758
30
1759
E0
1760
E0
1761
30
1762
18
1763
18
1764
18
1765
1C
1766
0E
1767
ENDCHAR
1768
STARTCHAR 124
1769
ENCODING 124
1770
SWIDTH 360 0
1771
DWIDTH 5 0
1772
BBX 2 16 1 -1
1773
BITMAP
1774
C0
1775
C0
1776
C0
1777
C0
1778
C0
1779
C0
1780
C0
1781
C0
1782
C0
1783
C0
1784
C0
1785
C0
1786
C0
1787
C0
1788
C0
1789
C0
1790
ENDCHAR
1791
STARTCHAR 125
1792
ENCODING 125
1793
SWIDTH 648 0
1794
DWIDTH 9 0
1795
BBX 8 14 0 0
1796
BITMAP
1797
E0
1798
70
1799
18
1800
18
1801
18
1802
0C
1803
07
1804
07
1805
0C
1806
18
1807
18
1808
18
1809
70
1810
E0
1811
ENDCHAR
1812
STARTCHAR 126
1813
ENCODING 126
1814
SWIDTH 792 0
1815
DWIDTH 11 0
1816
BBX 10 5 0 4
1817
BITMAP
1818
30C0
1819
78C0
1820
CCC0
1821
C780
1822
C300
1823
ENDCHAR
1824
STARTCHAR 127
1825
ENCODING 127
1826
SWIDTH 432 0
1827
DWIDTH 6 0
1828
BBX 5 13 0 1
1829
BITMAP
1830
F8
1831
88
1832
88
1833
88
1834
88
1835
88
1836
88
1837
88
1838
88
1839
88
1840
88
1841
88
1842
F8
1843
ENDCHAR
1844
STARTCHAR 128
1845
ENCODING 128
1846
SWIDTH 648 0
1847
DWIDTH 9 0
1848
BBX 8 11 0 0
1849
BITMAP
1850
FC
1851
FE
1852
C7
1853
C3
1854
C7
1855
DE
1856
DC
1857
C0
1858
C0
1859
C0
1860
80
1861
ENDCHAR
1862
STARTCHAR 129
1863
ENCODING 129
1864
SWIDTH 648 0
1865
DWIDTH 9 0
1866
BBX 8 11 0 0
1867
BITMAP
1868
1E
1869
3F
1870
73
1871
E0
1872
C0
1873
C0
1874
C0
1875
E0
1876
F0
1877
7F
1878
1E
1879
ENDCHAR
1880
STARTCHAR 130
1881
ENCODING 130
1882
SWIDTH 648 0
1883
DWIDTH 9 0
1884
BBX 8 11 0 0
1885
BITMAP
1886
7F
1887
FE
1888
18
1889
18
1890
18
1891
18
1892
18
1893
18
1894
18
1895
18
1896
10
1897
ENDCHAR
1898
STARTCHAR 131
1899
ENCODING 131
1900
SWIDTH 648 0
1901
DWIDTH 9 0
1902
BBX 8 12 0 -1
1903
BITMAP
1904
C1
1905
E3
1906
63
1907
66
1908
6E
1909
2C
1910
0C
1911
18
1912
18
1913
30
1914
F0
1915
E0
1916
ENDCHAR
1917
STARTCHAR 132
1918
ENCODING 132
1919
SWIDTH 648 0
1920
DWIDTH 9 0
1921
BBX 8 12 0 -1
1922
BITMAP
1923
7E
1924
FF
1925
DB
1926
DB
1927
DB
1928
DB
1929
5A
1930
18
1931
18
1932
18
1933
18
1934
10
1935
ENDCHAR
1936
STARTCHAR 133
1937
ENCODING 133
1938
SWIDTH 648 0
1939
DWIDTH 9 0
1940
BBX 8 11 0 0
1941
BITMAP
1942
C3
1943
66
1944
66
1945
34
1946
18
1947
18
1948
18
1949
34
1950
66
1951
66
1952
C3
1953
ENDCHAR
1954
STARTCHAR 134
1955
ENCODING 134
1956
SWIDTH 648 0
1957
DWIDTH 9 0
1958
BBX 8 12 0 -1
1959
BITMAP
1960
84
1961
C6
1962
C6
1963
C6
1964
C6
1965
C6
1966
C6
1967
C6
1968
C6
1969
FE
1970
FF
1971
03
1972
ENDCHAR
1973
STARTCHAR 135
1974
ENCODING 135
1975
SWIDTH 648 0
1976
DWIDTH 9 0
1977
BBX 8 11 0 0
1978
BITMAP
1979
41
1980
C3
1981
C3
1982
C3
1983
E7
1984
7F
1985
3F
1986
03
1987
03
1988
03
1989
02
1990
ENDCHAR
1991
STARTCHAR 136
1992
ENCODING 136
1993
SWIDTH 648 0
1994
DWIDTH 9 0
1995
BBX 8 11 0 0
1996
BITMAP
1997
82
1998
C3
1999
C3
2000
D3
2001
DB
2002
DB
2003
DB
2004
DB
2005
DB
2006
CB
2007
FF
2008
ENDCHAR
2009
STARTCHAR 137
2010
ENCODING 137
2011
SWIDTH 648 0
2012
DWIDTH 9 0
2013
BBX 8 12 0 -1
2014
BITMAP
2015
82
2016
C3
2017
C3
2018
D3
2019
DB
2020
DB
2021
DB
2022
DB
2023
DA
2024
C8
2025
FF
2026
03
2027
ENDCHAR
2028
STARTCHAR 138
2029
ENCODING 138
2030
SWIDTH 648 0
2031
DWIDTH 9 0
2032
BBX 8 11 0 0
2033
BITMAP
2034
C0
2035
E0
2036
60
2037
60
2038
6C
2039
6E
2040
67
2041
63
2042
67
2043
7E
2044
7C
2045
ENDCHAR
2046
STARTCHAR 139
2047
ENCODING 139
2048
SWIDTH 648 0
2049
DWIDTH 9 0
2050
BBX 8 11 0 0
2051
BITMAP
2052
82
2053
C3
2054
C3
2055
C3
2056
DB
2057
DD
2058
CF
2059
C7
2060
CF
2061
FD
2062
FB
2063
ENDCHAR
2064
STARTCHAR 140
2065
ENCODING 140
2066
SWIDTH 648 0
2067
DWIDTH 9 0
2068
BBX 8 11 0 0
2069
BITMAP
2070
40
2071
C0
2072
C0
2073
C0
2074
DC
2075
DE
2076
C7
2077
C3
2078
C7
2079
FE
2080
FC
2081
ENDCHAR
2082
STARTCHAR 141
2083
ENCODING 141
2084
SWIDTH 648 0
2085
DWIDTH 9 0
2086
BBX 8 11 0 0
2087
BITMAP
2088
7C
2089
FE
2090
C6
2091
03
2092
1B
2093
3B
2094
03
2095
03
2096
06
2097
FE
2098
78
2099
ENDCHAR
2100
STARTCHAR 142
2101
ENCODING 142
2102
SWIDTH 720 0
2103
DWIDTH 10 0
2104
BBX 9 11 0 0
2105
BITMAP
2106
4700
2107
CF80
2108
CD80
2109
CD80
2110
DD80
2111
DD80
2112
CD80
2113
CD80
2114
CD80
2115
CF80
2116
8700
2117
ENDCHAR
2118
STARTCHAR 143
2119
ENCODING 143
2120
SWIDTH 648 0
2121
DWIDTH 9 0
2122
BBX 8 11 0 0
2123
BITMAP
2124
3F
2125
7F
2126
E3
2127
C3
2128
E3
2129
7B
2130
3B
2131
33
2132
33
2133
73
2134
E2
2135
ENDCHAR
2136
STARTCHAR 144
2137
ENCODING 144
2138
SWIDTH 720 0
2139
DWIDTH 10 0
2140
BBX 9 14 0 0
2141
BITMAP
2142
FC00
2143
FE00
2144
C700
2145
C380
2146
C180
2147
C180
2148
C180
2149
FD80
2150
FD80
2151
C180
2152
C180
2153
C180
2154
C180
2155
8100
2156
ENDCHAR
2157
STARTCHAR 145
2158
ENCODING 145
2159
SWIDTH 720 0
2160
DWIDTH 10 0
2161
BBX 9 14 0 0
2162
BITMAP
2163
DF80
2164
DF00
2165
C000
2166
C000
2167
C000
2168
C000
2169
DE00
2170
DF00
2171
C380
2172
C180
2173
C180
2174
C380
2175
FF00
2176
FE00
2177
ENDCHAR
2178
STARTCHAR 146
2179
ENCODING 146
2180
SWIDTH 720 0
2181
DWIDTH 10 0
2182
BBX 9 14 0 0
2183
BITMAP
2184
5E00
2185
DF00
2186
C380
2187
C180
2188
C180
2189
C380
2190
FF00
2191
FF00
2192
C380
2193
C180
2194
C180
2195
C380
2196
DF00
2197
BE00
2198
ENDCHAR
2199
STARTCHAR 147
2200
ENCODING 147
2201
SWIDTH 720 0
2202
DWIDTH 10 0
2203
BBX 9 14 0 0
2204
BITMAP
2205
DF00
2206
DF80
2207
C000
2208
C000
2209
C000
2210
C000
2211
C000
2212
C000
2213
C000
2214
C000
2215
C000
2216
C000
2217
C000
2218
8000
2219
ENDCHAR
2220
STARTCHAR 148
2221
ENCODING 148
2222
SWIDTH 720 0
2223
DWIDTH 10 0
2224
BBX 9 14 0 0
2225
BITMAP
2226
0B00
2227
1B00
2228
3B00
2229
7300
2230
6300
2231
6300
2232
6300
2233
6300
2234
6300
2235
6300
2236
7B00
2237
FB80
2238
C180
2239
C180
2240
ENDCHAR
2241
STARTCHAR 149
2242
ENCODING 149
2243
SWIDTH 720 0
2244
DWIDTH 10 0
2245
BBX 9 14 0 0
2246
BITMAP
2247
5F80
2248
DF00
2249
C000
2250
C000
2251
C000
2252
C000
2253
DF00
2254
DE00
2255
C000
2256
C000
2257
C000
2258
C000
2259
DF80
2260
BF00
2261
ENDCHAR
2262
STARTCHAR 150
2263
ENCODING 150
2264
SWIDTH 792 0
2265
DWIDTH 11 0
2266
BBX 10 14 0 0
2267
BITMAP
2268
4040
2269
C0C0
2270
C4C0
2271
CCC0
2272
CCC0
2273
6D80
2274
6D80
2275
6D80
2276
6D80
2277
CCC0
2278
CCC0
2279
CCC0
2280
C8C0
2281
8080
2282
ENDCHAR
2283
STARTCHAR 151
2284
ENCODING 151
2285
SWIDTH 720 0
2286
DWIDTH 10 0
2287
BBX 9 14 0 0
2288
BITMAP
2289
7A00
2290
FB00
2291
8380
2292
0180
2293
0180
2294
0300
2295
3A00
2296
7B00
2297
0380
2298
0180
2299
0180
2300
8380
2301
FB00
2302
7800
2303
ENDCHAR
2304
STARTCHAR 152
2305
ENCODING 152
2306
SWIDTH 720 0
2307
DWIDTH 10 0
2308
BBX 9 14 0 0
2309
BITMAP
2310
4380
2311
C380
2312
C780
2313
C780
2314
C780
2315
CD80
2316
CD80
2317
CD80
2318
D980
2319
D980
2320
D980
2321
D180
2322
D180
2323
C100
2324
ENDCHAR
2325
STARTCHAR 153
2326
ENCODING 153
2327
SWIDTH 720 0
2328
DWIDTH 10 0
2329
BBX 9 14 0 0
2330
BITMAP
2331
5B80
2332
DB80
2333
D780
2334
C780
2335
C780
2336
CD80
2337
CD80
2338
CD80
2339
D980
2340
D980
2341
D980
2342
D180
2343
D180
2344
C100
2345
ENDCHAR
2346
STARTCHAR 154
2347
ENCODING 154
2348
SWIDTH 720 0
2349
DWIDTH 10 0
2350
BBX 9 14 0 0
2351
BITMAP
2352
4180
2353
C380
2354
C700
2355
CE00
2356
DC00
2357
D800
2358
D800
2359
D800
2360
D800
2361
DC00
2362
CE00
2363
C700
2364
C380
2365
4180
2366
ENDCHAR
2367
STARTCHAR 155
2368
ENCODING 155
2369
SWIDTH 720 0
2370
DWIDTH 10 0
2371
BBX 9 14 0 0
2372
BITMAP
2373
DC00
2374
DE00
2375
C700
2376
C380
2377
C180
2378
C180
2379
C180
2380
C180
2381
C180
2382
C180
2383
C180
2384
C180
2385
C180
2386
C180
2387
ENDCHAR
2388
STARTCHAR 156
2389
ENCODING 156
2390
SWIDTH 720 0
2391
DWIDTH 10 0
2392
BBX 9 14 0 0
2393
BITMAP
2394
C180
2395
E380
2396
F780
2397
F780
2398
D580
2399
C180
2400
D580
2401
DD80
2402
DD80
2403
C980
2404
C180
2405
C180
2406
C180
2407
8100
2408
ENDCHAR
2409
STARTCHAR 157
2410
ENCODING 157
2411
SWIDTH 720 0
2412
DWIDTH 10 0
2413
BBX 9 14 0 0
2414
BITMAP
2415
8100
2416
C180
2417
C180
2418
C180
2419
C180
2420
C180
2421
DF80
2422
DF80
2423
C180
2424
C180
2425
C180
2426
C180
2427
C180
2428
4080
2429
ENDCHAR
2430
STARTCHAR 158
2431
ENCODING 158
2432
SWIDTH 720 0
2433
DWIDTH 10 0
2434
BBX 9 14 0 0
2435
BITMAP
2436
2E00
2437
6F00
2438
E380
2439
C180
2440
C180
2441
C180
2442
C180
2443
C180
2444
C180
2445
C180
2446
C180
2447
E380
2448
7B00
2449
3A00
2450
ENDCHAR
2451
STARTCHAR 159
2452
ENCODING 159
2453
SWIDTH 720 0
2454
DWIDTH 10 0
2455
BBX 9 14 0 0
2456
BITMAP
2457
DF80
2458
DF80
2459
C180
2460
C180
2461
C180
2462
C180
2463
C180
2464
C180
2465
C180
2466
C180
2467
C180
2468
C180
2469
C180
2470
8100
2471
ENDCHAR
2472
STARTCHAR 160
2473
ENCODING 160
2474
SWIDTH 720 0
2475
DWIDTH 10 0
2476
BBX 9 14 0 0
2477
BITMAP
2478
FE00
2479
FF00
2480
C380
2481
C180
2482
C180
2483
C380
2484
DF00
2485
DE00
2486
C000
2487
C000
2488
C000
2489
C000
2490
C000
2491
8000
2492
ENDCHAR
2493
STARTCHAR 161
2494
ENCODING 161
2495
SWIDTH 720 0
2496
DWIDTH 10 0
2497
BBX 9 14 0 0
2498
BITMAP
2499
0E00
2500
3F00
2501
7380
2502
6180
2503
C000
2504
C000
2505
C000
2506
C000
2507
C000
2508
C000
2509
6000
2510
7000
2511
3F80
2512
0F00
2513
ENDCHAR
2514
STARTCHAR 162
2515
ENCODING 162
2516
SWIDTH 720 0
2517
DWIDTH 10 0
2518
BBX 9 14 0 0
2519
BITMAP
2520
FF00
2521
7F80
2522
0000
2523
0C00
2524
0C00
2525
0C00
2526
0C00
2527
0C00
2528
0C00
2529
0C00
2530
0C00
2531
0C00
2532
0C00
2533
0400
2534
ENDCHAR
2535
STARTCHAR 163
2536
ENCODING 163
2537
SWIDTH 720 0
2538
DWIDTH 10 0
2539
BBX 9 14 0 0
2540
BITMAP
2541
8100
2542
C180
2543
C180
2544
C180
2545
C180
2546
7D80
2547
3D80
2548
0180
2549
0180
2550
0180
2551
C180
2552
E180
2553
7F00
2554
3E00
2555
ENDCHAR
2556
STARTCHAR 164
2557
ENCODING 164
2558
SWIDTH 792 0
2559
DWIDTH 11 0
2560
BBX 10 14 0 0
2561
BITMAP
2562
3F00
2563
7F80
2564
EDC0
2565
CCC0
2566
CCC0
2567
EDC0
2568
6D80
2569
2D00
2570
0C00
2571
0C00
2572
0C00
2573
0C00
2574
0C00
2575
0400
2576
ENDCHAR
2577
STARTCHAR 165
2578
ENCODING 165
2579
SWIDTH 720 0
2580
DWIDTH 10 0
2581
BBX 9 14 0 0
2582
BITMAP
2583
C180
2584
C180
2585
C180
2586
6300
2587
6300
2588
3200
2589
3800
2590
1C00
2591
0E00
2592
6700
2593
6300
2594
C180
2595
C180
2596
C180
2597
ENDCHAR
2598
STARTCHAR 166
2599
ENCODING 166
2600
SWIDTH 720 0
2601
DWIDTH 10 0
2602
BBX 10 15 0 -1
2603
BITMAP
2604
8200
2605
C300
2606
C300
2607
C300
2608
C300
2609
C300
2610
C300
2611
C300
2612
C300
2613
C300
2614
C300
2615
C300
2616
DF00
2617
DF80
2618
01C0
2619
ENDCHAR
2620
STARTCHAR 167
2621
ENCODING 167
2622
SWIDTH 720 0
2623
DWIDTH 10 0
2624
BBX 9 14 0 0
2625
BITMAP
2626
8100
2627
C180
2628
C180
2629
C180
2630
C180
2631
C180
2632
E180
2633
7D80
2634
3D80
2635
0180
2636
0180
2637
0180
2638
0180
2639
0080
2640
ENDCHAR
2641
STARTCHAR 168
2642
ENCODING 168
2643
SWIDTH 792 0
2644
DWIDTH 11 0
2645
BBX 10 14 0 0
2646
BITMAP
2647
8080
2648
C0C0
2649
C0C0
2650
C0C0
2651
C8C0
2652
CCC0
2653
CCC0
2654
CCC0
2655
CCC0
2656
CCC0
2657
C4C0
2658
C040
2659
DF80
2660
5FC0
2661
ENDCHAR
2662
STARTCHAR 169
2663
ENCODING 169
2664
SWIDTH 792 0
2665
DWIDTH 11 0
2666
BBX 11 15 0 -1
2667
BITMAP
2668
8080
2669
C0C0
2670
C0C0
2671
C0C0
2672
C8C0
2673
CCC0
2674
CCC0
2675
CCC0
2676
CCC0
2677
CCC0
2678
C4C0
2679
C040
2680
DF80
2681
5FC0
2682
00E0
2683
ENDCHAR
2684
STARTCHAR 170
2685
ENCODING 170
2686
SWIDTH 720 0
2687
DWIDTH 10 0
2688
BBX 9 14 0 0
2689
BITMAP
2690
E000
2691
E000
2692
6000
2693
6000
2694
6000
2695
6000
2696
6E00
2697
6F00
2698
6380
2699
6180
2700
6180
2701
6380
2702
7F00
2703
3E00
2704
ENDCHAR
2705
STARTCHAR 171
2706
ENCODING 171
2707
SWIDTH 792 0
2708
DWIDTH 11 0
2709
BBX 10 14 0 0
2710
BITMAP
2711
8080
2712
C0C0
2713
C0C0
2714
C0C0
2715
C0C0
2716
C0C0
2717
DCC0
2718
DEC0
2719
C740
2720
C340
2721
C340
2722
C740
2723
FEC0
2724
7CC0
2725
ENDCHAR
2726
STARTCHAR 172
2727
ENCODING 172
2728
SWIDTH 720 0
2729
DWIDTH 10 0
2730
BBX 9 14 0 0
2731
BITMAP
2732
8000
2733
C000
2734
C000
2735
C000
2736
C000
2737
C000
2738
DE00
2739
DF00
2740
C380
2741
C180
2742
C180
2743
C380
2744
FF00
2745
FE00
2746
ENDCHAR
2747
STARTCHAR 173
2748
ENCODING 173
2749
SWIDTH 720 0
2750
DWIDTH 10 0
2751
BBX 9 14 0 0
2752
BITMAP
2753
3E00
2754
7F00
2755
E380
2756
C180
2757
C180
2758
0180
2759
1D80
2760
1D80
2761
0180
2762
0180
2763
C180
2764
E380
2765
7F00
2766
3E00
2767
ENDCHAR
2768
STARTCHAR 174
2769
ENCODING 174
2770
SWIDTH 792 0
2771
DWIDTH 11 0
2772
BBX 10 14 0 0
2773
BITMAP
2774
4700
2775
CF80
2776
DDC0
2777
D8C0
2778
D8C0
2779
D8C0
2780
F8C0
2781
F8C0
2782
D8C0
2783
D8C0
2784
D8C0
2785
DDC0
2786
CF80
2787
8700
2788
ENDCHAR
2789
STARTCHAR 175
2790
ENCODING 175
2791
SWIDTH 720 0
2792
DWIDTH 10 0
2793
BBX 9 14 0 0
2794
BITMAP
2795
3F80
2796
7F80
2797
E180
2798
C180
2799
C180
2800
E180
2801
7D80
2802
3D80
2803
1D80
2804
3980
2805
7180
2806
E180
2807
C180
2808
8100
2809
ENDCHAR
2810
STARTCHAR 176
2811
ENCODING 176
2812
SWIDTH 648 0
2813
DWIDTH 9 0
2814
BBX 8 11 0 0
2815
BITMAP
2816
7C
2817
7F
2818
03
2819
03
2820
3B
2821
7B
2822
E3
2823
C3
2824
C7
2825
FF
2826
7B
2827
ENDCHAR
2828
STARTCHAR 177
2829
ENCODING 177
2830
SWIDTH 648 0
2831
DWIDTH 9 0
2832
BBX 8 11 0 0
2833
BITMAP
2834
07
2835
1F
2836
38
2837
70
2838
66
2839
CF
2840
C3
2841
C3
2842
E7
2843
7E
2844
3C
2845
ENDCHAR
2846
STARTCHAR 178
2847
ENCODING 178
2848
SWIDTH 648 0
2849
DWIDTH 9 0
2850
BBX 8 11 0 0
2851
BITMAP
2852
5C
2853
DE
2854
C6
2855
C6
2856
DC
2857
DE
2858
C3
2859
C3
2860
C7
2861
DE
2862
BC
2863
ENDCHAR
2864
STARTCHAR 179
2865
ENCODING 179
2866
SWIDTH 648 0
2867
DWIDTH 9 0
2868
BBX 8 11 0 0
2869
BITMAP
2870
FE
2871
FF
2872
C0
2873
C0
2874
C0
2875
C0
2876
C0
2877
C0
2878
C0
2879
C0
2880
80
2881
ENDCHAR
2882
STARTCHAR 180
2883
ENCODING 180
2884
SWIDTH 792 0
2885
DWIDTH 11 0
2886
BBX 10 11 0 0
2887
BITMAP
2888
1F80
2889
1F80
2890
1980
2891
3180
2892
3180
2893
3180
2894
0180
2895
7FC0
2896
FFC0
2897
C0C0
2898
C0C0
2899
ENDCHAR
2900
STARTCHAR 181
2901
ENCODING 181
2902
SWIDTH 648 0
2903
DWIDTH 9 0
2904
BBX 8 11 0 0
2905
BITMAP
2906
3C
2907
7E
2908
E7
2909
C3
2910
C3
2911
DF
2912
DE
2913
C0
2914
E3
2915
7F
2916
3E
2917
ENDCHAR
2918
STARTCHAR 182
2919
ENCODING 182
2920
SWIDTH 720 0
2921
DWIDTH 10 0
2922
BBX 9 11 0 0
2923
BITMAP
2924
4080
2925
C980
2926
C980
2927
6B00
2928
3600
2929
3600
2930
6B00
2931
C980
2932
C980
2933
C980
2934
8100
2935
ENDCHAR
2936
STARTCHAR 183
2937
ENCODING 183
2938
SWIDTH 648 0
2939
DWIDTH 9 0
2940
BBX 8 11 0 0
2941
BITMAP
2942
74
2943
F6
2944
C3
2945
07
2946
7E
2947
3E
2948
06
2949
03
2950
07
2951
FE
2952
7C
2953
ENDCHAR
2954
STARTCHAR 184
2955
ENCODING 184
2956
SWIDTH 648 0
2957
DWIDTH 9 0
2958
BBX 8 11 0 0
2959
BITMAP
2960
41
2961
C3
2962
C3
2963
C7
2964
CF
2965
DF
2966
DB
2967
D3
2968
C3
2969
C3
2970
82
2971
ENDCHAR
2972
STARTCHAR 185
2973
ENCODING 185
2974
SWIDTH 648 0
2975
DWIDTH 9 0
2976
BBX 8 11 0 0
2977
BITMAP
2978
59
2979
DB
2980
D3
2981
C7
2982
CF
2983
DF
2984
DB
2985
D3
2986
C3
2987
C3
2988
82
2989
ENDCHAR
2990
STARTCHAR 186
2991
ENCODING 186
2992
SWIDTH 648 0
2993
DWIDTH 9 0
2994
BBX 8 11 0 0
2995
BITMAP
2996
47
2997
CF
2998
CC
2999
DC
3000
D8
3001
D8
3002
D8
3003
DC
3004
CE
3005
C7
3006
43
3007
ENDCHAR
3008
STARTCHAR 187
3009
ENCODING 187
3010
SWIDTH 648 0
3011
DWIDTH 9 0
3012
BBX 8 11 0 0
3013
BITMAP
3014
1B
3015
3B
3016
73
3017
E3
3018
C3
3019
C3
3020
C3
3021
C3
3022
C3
3023
C3
3024
C3
3025
ENDCHAR
3026
STARTCHAR 188
3027
ENCODING 188
3028
SWIDTH 720 0
3029
DWIDTH 10 0
3030
BBX 9 11 0 0
3031
BITMAP
3032
4100
3033
E380
3034
F780
3035
F780
3036
D580
3037
D580
3038
D580
3039
D580
3040
C180
3041
C180
3042
8100
3043
ENDCHAR
3044
STARTCHAR 189
3045
ENCODING 189
3046
SWIDTH 648 0
3047
DWIDTH 9 0
3048
BBX 8 11 0 0
3049
BITMAP
3050
41
3051
C3
3052
C3
3053
FB
3054
FB
3055
C3
3056
C3
3057
C3
3058
C3
3059
C3
3060
82
3061
ENDCHAR
3062
STARTCHAR 190
3063
ENCODING 190
3064
SWIDTH 648 0
3065
DWIDTH 9 0
3066
BBX 8 11 0 0
3067
BITMAP
3068
34
3069
76
3070
E3
3071
C3
3072
C3
3073
C3
3074
C3
3075
C3
3076
E3
3077
76
3078
34
3079
ENDCHAR
3080
STARTCHAR 191
3081
ENCODING 191
3082
SWIDTH 648 0
3083
DWIDTH 9 0
3084
BBX 8 11 0 0
3085
BITMAP
3086
5F
3087
DF
3088
C3
3089
C3
3090
C3
3091
C3
3092
C3
3093
C3
3094
C3
3095
C3
3096
82
3097
ENDCHAR
3098
ENDFONT
В других размерах руского нет. Как напишите, миласти просим выкласть тут.
Благодарю, как сделаю - обязательно заделюсь
странно, отрисовал шрифт 6х9, залил в ардуино и получил вот такое: буквы пишутся через пробел
Причем, английские выглядят нормально.
значит не правильно в били шрифт. Насколько я знаю там в шрифтах у каждого символа задается его ширина - у вас она встала поумолчанию. Переделайте шрифт правильно.
Спасибо!
Вы были правы - проверил ширину символов, и у пустых она оказалась равна шести. Не знаю почему, но после того как я выставил им ширину 1, всё встало на свои места. Еще чуть причешу шрифт и выложу сюда
Скорее всего процедура вывода строки не понимает юникод и для нее строчка "Готов" выглядит как "*Г*о*т*о*в"
где * - первый байт двухбайтного символа в кодировке юникод.
Поэтому, когда ширина "непечатаемых" символов была равна ширине символа - эти * печатались как пробел. Когда Вы изменили их ширину на 1, они стали незаметными.
P.S. IMHO )))
Может вобще не то скажу, но IMHO ))).... Когдат подгонял вывод русских для экрана от нокиа 1280 (кодировка та же), также выводились с пробелом только не перед, а после русской буквы. На солько потом понял, после символа читаются и выводятся данные за пределами массива символов (шрифта) с шириной символа т.к. при загрузке в разные контроллеры или даже другой код с такой же функцией могли не пробелы выводится а "краказюки". Указал номер последнего символа в массиве шрифта и если номер выводимого символа больше последнего, он игнорируется. Крайний "п" это 191. Всё что больше, return. И пошло всё поехало...
как мне показалось, там определенный код используется в качестве дефолтного символа. Когда все пустые сделал равными одному пикселю в ширину, то и проблема ушла. Хотя, разумеется, умнее было бы разобраться, но мне пока некогда
Залил fon файлы на дропбокс, может кому полезны будут. В архиве 6х9 и 6х10. Там пара символов еще добавлена служебных для интерфейса 3D-принтера, не стал их удалять.
/lib/pde.jar Настройки->Кодировка строк->[кодировка шрифта]
Товарищ NeiroN, меня заинтересовал ваш пост. Не смотря на то, что в описанной вами инструкции количество действий около 0, у меня не получилось повторить ваш подвиг.
Я занимаюсь тем же что и goodwind - руссификация LCD для 3D-принтера. И так же как у него возникла проблема с кодировкой. Путём небольших доработок кода получилось отобразить русские буквы без этих громадных пробелов между ними (коими являются спец символы русских букв в UTF-8), а так же верно выщитывать длины этих строк, что влияет на табуляцию в отображении. Но все же хотелось бы сделать красиво - иметь исходные строки в однобайтовой кодировке, чтобы можно было запутсить тот же самый механизм как и для латиницы.
Использую версию Arduino IDE 1.0.5 (тобишь как и у вас), скачал ваш pde.jar и заменил им одноименный в папке lib, в настройках появилось поле "Кодировка строк". Какие я только не ставил кодирвоки: и MS-DOS и KOI8-R и ASCII. Результат один и тот же - конечная строка так и остается в UTF-8.
Подкиньте, пожалуйста, мысль где и что я не так делаю. Спасибо за внимание.
Поделитесь решением проблемы с табуляцией, пожалуйста.. Все руки не дойдут разобраться
Может я не писал - оно не меняет кодировку скетча при его сохранениее, оно меняет его кодировку преред компиляцией. Шрифт тоже должен быть в этой кодировке. Скачайте лучше целиком мою версию иде, где все библиотеки http://yadi.sk/d/B-IHNu6QJdiCX
я использовал этот шрифт и думаю что он оптимален u8g.setFont(u8g_font_6x10e); он уже скомпилирован и нет никаких пробелов, кодировка шрифта ISO-8859-5(вы спросите отчего же не CP-1251 - программа редактирования не поддерживала его)
По просьбе goodwind:
1. Первое наперво нужно изменить шрифты 6x9 и 6x10, которые сделал goodwind. А именно нужно сделать ширину всех символов 6 точек (будь то "точка", "пробел" или буква). Это объясняется тем, что длина любой отображаемой строки на дисплее должна быть одинаковой в независимости от содержимого. У вас, например, "восклицательный знак" занимает 2 или 3 точки. Спецсимволы, которые вы сделали шириной в 1 точку а на дисплее они отображались в самом начале пробелами, можно сделать как угодно, так как в итоге нашей целью является исключение этих кодов при выводе информации на LCD. Это умозаключение я сделал, когда распечатал всю латиницу, знаки и символы стандартным марлиновским шрифтом и своим акуляром оценил занимаемое пространство на дисплее каждым символом.
2. Далее делаем уже не раз обмусоленную операцию конвертирования bdf2u8g отредактированных шрифтов и идём в конец файла dogm_font_data_marlin.h и вставляем что-то типа токого текста:
01
#include "language.h"
02
03
#if LANGUAGE_CHOICE == 6
04
# include "u8g_font_6x9_cyrillic.h"
05
# define u8g_font_6x9 u8g_font_6x9_cyrillic
06
07
# include "u8g_font_6x10_cyrillic.h"
08
# define u8g_font_6x10_marlin u8g_font_6x10_cyrillic
09
# define u8g_font_9x18 u8g_font_6x10_cyrillic
10
#endif // LANGUAGE_CHOICE
где u8g_font_6x9_cyrillic.h и u8g_font_6x10_cyrillic.h это заголовочные файлы где лежат массивы соответсвующих шрифтов. Я сделал подмену имён массивов с помощью макроопределений лишь с той и только с той целью, чтобы не бегать по скетчу и не искать где нужно поменять шрифты. А так в "language.h" поменял дефайн LANGUAGE_CHOICE и не паришься.
3. Самый ёмкий пункт. Тут пришлось переделать код в файле dogm_lcd_implementation.h. В нём очень часто встречается следующий код:
1
while
( (c = pgm_read_byte(pstr)) !=
'\0'
)
2
{
3
u8g.print(c);
4
pstr++;
5
n--;
6
}
Очевидно, что этот код выводит посимвольно строку на LCD дисплей. Имеено сдесь находится причина вывода пустых спецсимволов (пробелов), так как в кодировке UTF-8 русские буквы кодируются двумя байтами, где 1ый - это код страницы (кстати он никогда, вроде, не совпадает по значению с литинскими буквами) и 2ой - это сам код символа. Понятно, что программа не должна выводить спецсимволы. Так же нужно будет в этом файле переделать функцию расчета длины строки с учетом вышесказанного, т.к. действующая считает число однобайтовых символов в строке. Не буду вас утомлять теорией и кину листинг этого файла:
001
/**
002
*dogm_lcd_implementation.h
003
*
004
*Graphics LCD implementation for 128x64 pixel LCDs by STB for ErikZalm/Marlin
005
*Demonstrator: <a href="http://www.reprap.org/wiki/STB_Electronics" rel="nofollow">http://www.reprap.org/wiki/STB_Electronics</a>
006
*License: <a href="http://opensource.org/licenses/BSD-3-Clause" rel="nofollow">http://opensource.org/licenses/BSD-3-Clause</a>
007
*
008
*With the use of:
009
*u8glib by Oliver Kraus
010
*<a href="http://code.google.com/p/u8glib/" rel="nofollow">http://code.google.com/p/u8glib/</a>
011
*License: <a href="http://opensource.org/licenses/BSD-3-Clause" rel="nofollow">http://opensource.org/licenses/BSD-3-Clause</a>
012
*/
013
014
015
#ifndef ULTRA_LCD_IMPLEMENTATION_DOGM_H
016
#define ULTRA_LCD_IMPLEMENTATION_DOGM_H
017
018
/**
019
* Implementation of the LCD display routines for a DOGM128 graphic display. These are common LCD 128x64 pixel graphic displays.
020
**/
021
022
#ifdef ULTIPANEL
023
#define BLEN_A 0
024
#define BLEN_B 1
025
#define BLEN_C 2
026
#define EN_A (1<<BLEN_A)
027
#define EN_B (1<<BLEN_B)
028
#define EN_C (1<<BLEN_C)
029
#define encrot0 0
030
#define encrot1 2
031
#define encrot2 3
032
#define encrot3 1
033
#define LCD_CLICKED (buttons&EN_C)
034
#endif
035
036
#include <U8glib.h>
037
#include "DOGMbitmaps.h"
038
#include "dogm_font_data_marlin.h"
039
#include "ultralcd.h"
040
#include "ultralcd_st7920_u8glib_rrd.h"
041
042
043
/* Russian language not supported yet, needs custom font
044
045
#if LANGUAGE_CHOICE == 6
046
#include "LiquidCrystalRus.h"
047
#define LCD_CLASS LiquidCrystalRus
048
#else
049
#include <LiquidCrystal.h>
050
#define LCD_CLASS LiquidCrystal
051
#endif
052
*/
053
054
// DOGM parameters (size in pixels)
055
#define DOG_CHAR_WIDTH 6
056
#define DOG_CHAR_HEIGHT 12
057
#define DOG_CHAR_WIDTH_LARGE 9
058
#define DOG_CHAR_HEIGHT_LARGE 18
059
060
061
#define START_ROW 0
062
063
064
/* Custom characters defined in font font_6x10_marlin.c */
065
#if LANGUAGE_CHOICE == 6
066
# define LCD_STR_DEGREE "\xC1"
067
#else
068
# define LCD_STR_DEGREE "\xB0"
069
#endif
070
#define LCD_STR_REFRESH "\xF8"
071
#define LCD_STR_FOLDER "\xF9"
072
073
074
#define LCD_STR_ARROW_RIGHT "\xFA"
075
#define LCD_STR_UPLEVEL "\xFB"
076
#define LCD_STR_CLOCK "\xFC"
077
#define LCD_STR_FEEDRATE "\xFD"
078
#define LCD_STR_BEDTEMP "\xFE"
079
#define LCD_STR_THERMOMETER "\xFF"
080
081
#define FONT_STATUSMENU u8g_font_6x9
082
083
int
lcd_contrast;
084
085
// LCD selection
086
#ifdef U8GLIB_ST7920
087
//U8GLIB_ST7920_128X64_RRD u8g(0,0,0);
088
U8GLIB_ST7920_128X64_RRD u8g(0);
089
#elif defined(MAKRPANEL)
090
// The MaKrPanel display, ST7565 controller as well
091
U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0);
092
#else
093
// for regular DOGM128 display with HW-SPI
094
U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0);
// HW-SPI Com: CS, A0
095
#endif
096
097
static
void
lcd_implementation_init()
098
{
099
#ifdef LCD_PIN_BL
100
pinMode(LCD_PIN_BL, OUTPUT);
// Enable LCD backlight
101
digitalWrite(LCD_PIN_BL, HIGH);
102
#endif
103
104
u8g.setContrast(lcd_contrast);
105
// Uncomment this if you have the first generation (V1.10) of STBs board
106
// pinMode(17, OUTPUT); // Enable LCD backlight
107
// digitalWrite(17, HIGH);
108
109
u8g.firstPage();
110
do
{
111
u8g.setFont(u8g_font_6x10_marlin);
112
u8g.setColorIndex(1);
113
u8g.drawBox (0, 0, u8g.getWidth(), u8g.getHeight());
114
u8g.setColorIndex(1);
115
}
while
( u8g.nextPage() );
116
117
#ifdef LCD_SCREEN_ROT_90
118
u8g.setRot90();
// Rotate screen by 90°
119
#endif
120
121
#ifdef LCD_SCREEN_ROT_180
122
u8g.setRot180();
// Rotate screen by 180°
123
#endif
124
125
#ifdef LCD_SCREEN_ROT_270
126
u8g.setRot270();
// Rotate screen by 270°
127
#endif
128
129
130
u8g.firstPage();
131
do
{
132
// RepRap init bmp
133
u8g.drawBitmapP(0,0,START_BMPBYTEWIDTH,START_BMPHEIGHT,start_bmp);
134
// Welcome message
135
u8g.setFont(u8g_font_6x10_marlin);
136
u8g.drawStr(62,10,
"MARLIN"
);
137
u8g.setFont(u8g_font_5x8);
138
u8g.drawStr(62,19,
"V1.0.0 RC2-mm"
);
139
u8g.setFont(u8g_font_6x10_marlin);
140
u8g.drawStr(62,28,
"by 3DArt"
);
141
u8g.drawStr(62,41,
"DOGM128 LCD"
);
142
u8g.setFont(u8g_font_5x8);
143
u8g.drawStr(62,48,
"enhancements"
);
144
u8g.setFont(u8g_font_5x8);
145
u8g.drawStr(62,55,
"by STB, MM"
);
146
u8g.drawStr(62,61,
"uses u"
);
147
u8g.drawStr90(92,57,
"8"
);
148
u8g.drawStr(100,61,
"glib"
);
149
}
while
( u8g.nextPage() );
150
}
151
152
static
void
lcd_implementation_clear()
153
{
154
// NO NEED TO IMPLEMENT LIKE SO. Picture loop automatically clears the display.
155
//
156
// Check this article: <a href="http://arduino.cc/forum/index.php?topic=91395.25;wap2" rel="nofollow">http://arduino.cc/forum/index.php?topic=91395.25;wap2</a>
157
//
158
// u8g.firstPage();
159
// do {
160
// u8g.setColorIndex(0);
161
// u8g.drawBox (0, 0, u8g.getWidth(), u8g.getHeight());
162
// u8g.setColorIndex(1);
163
// } while( u8g.nextPage() );
164
}
165
166
/* Arduino < 1.0.0 is missing a function to print PROGMEM strings, so we need to implement our own */
167
static
void
lcd_printPGM(
const
char
* str)
168
{
169
char
c;
170
while
((c = pgm_read_byte(str++)) !=
'\0'
)
171
{
172
u8g.print(c);
173
}
174
}
175
176
#define DISPLAY_SYMBOL(ch) (((ch) >= 0x20 && (ch) <= 0xC1) || (ch) >= 0xF8)
177
178
static
char
lcd_print_string(
const
char
* str)
179
{
180
char
c, count = 0;
181
182
while
((c = pgm_read_byte(str++)) !=
'\0'
)
183
if
(DISPLAY_SYMBOL((unsigned
char
)c))
184
{
185
u8g.print(c);
186
count++;
187
}
188
189
return
count;
190
}
191
192
static
char
strlen_(
const
char
* str)
193
{
194
char
c, count = 0;
195
196
while
((c = pgm_read_byte(str++)) !=
'\0'
)
197
if
(DISPLAY_SYMBOL((unsigned
char
)c))
198
count++;
199
200
return
count;
201
}
202
203
static
void
lcd_implementation_status_screen()
204
{
205
206
static
unsigned
char
fan_rot = 0;
207
208
u8g.setColorIndex(1);
// black on white
209
210
// Symbols menu graphics, animated fan
211
if
((blink % 2) && fanSpeed ) u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT,status_screen0_bmp);
212
else
u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT,status_screen1_bmp);
213
214
#ifdef SDSUPPORT
215
//SD Card Symbol
216
u8g.drawBox(42,42,8,7);
217
u8g.drawBox(50,44,2,5);
218
u8g.drawFrame(42,49,10,4);
219
u8g.drawPixel(50,43);
220
// Progress bar
221
u8g.drawFrame(54,49,73,4);
222
223
// SD Card Progress bar and clock
224
u8g.setFont(FONT_STATUSMENU);
225
226
if
(IS_SD_PRINTING)
227
{
228
// Progress bar
229
u8g.drawBox(55,50, (unsigned
int
)( (71 * card.percentDone())/100) ,2);
230
}
231
else
{
232
// do nothing
233
}
234
235
u8g.setPrintPos(80,47);
236
if
(starttime != 0)
237
{
238
uint16_t time = millis()/60000 - starttime/60000;
239
240
u8g.print(itostr2(time/60));
241
u8g.print(
':'
);
242
u8g.print(itostr2(time%60));
243
}
else
{
244
lcd_printPGM(PSTR(
"--:--"
));
245
}
246
#endif
247
248
// Extruder 1
249
u8g.setFont(FONT_STATUSMENU);
250
u8g.setPrintPos(6,6);
251
u8g.print(itostr3(
int
(degTargetHotend(0) + 0.5)));
252
lcd_printPGM(PSTR(LCD_STR_DEGREE
" "
));
253
u8g.setPrintPos(6,27);
254
u8g.print(itostr3(
int
(degHotend(0) + 0.5)));
255
lcd_printPGM(PSTR(LCD_STR_DEGREE
" "
));
256
if
(!isHeatingHotend(0)) u8g.drawBox(13,17,2,2);
257
else
258
{
259
u8g.setColorIndex(0);
// white on black
260
u8g.drawBox(13,17,2,2);
261
u8g.setColorIndex(1);
// black on white
262
}
263
264
// Extruder 2
265
u8g.setFont(FONT_STATUSMENU);
266
#if EXTRUDERS > 1
267
u8g.setPrintPos(31,6);
268
u8g.print(itostr3(
int
(degTargetHotend(1) + 0.5)));
269
lcd_printPGM(PSTR(LCD_STR_DEGREE
" "
));
270
u8g.setPrintPos(31,27);
271
u8g.print(itostr3(
int
(degHotend(1) + 0.5)));
272
lcd_printPGM(PSTR(LCD_STR_DEGREE
" "
));
273
if
(!isHeatingHotend(1)) u8g.drawBox(38,17,2,2);
274
else
275
{
276
u8g.setColorIndex(0);
// white on black
277
u8g.drawBox(38,17,2,2);
278
u8g.setColorIndex(1);
// black on white
279
}
280
#else
281
u8g.setPrintPos(31,27);
282
u8g.print(
"---"
);
283
#endif
284
285
// Extruder 3
286
u8g.setFont(FONT_STATUSMENU);
287
# if EXTRUDERS > 2
288
u8g.setPrintPos(55,6);
289
u8g.print(itostr3(
int
(degTargetHotend(2) + 0.5)));
290
lcd_printPGM(PSTR(LCD_STR_DEGREE
" "
));
291
u8g.setPrintPos(55,27);
292
u8g.print(itostr3(
int
(degHotend(2) + 0.5)));
293
lcd_printPGM(PSTR(LCD_STR_DEGREE
" "
));
294
if
(!isHeatingHotend(2)) u8g.drawBox(62,17,2,2);
295
else
296
{
297
u8g.setColorIndex(0);
// white on black
298
u8g.drawBox(62,17,2,2);
299
u8g.setColorIndex(1);
// black on white
300
}
301
#else
302
u8g.setPrintPos(55,27);
303
u8g.print(
"---"
);
304
#endif
305
306
// Heatbed
307
u8g.setFont(FONT_STATUSMENU);
308
u8g.setPrintPos(81,6);
309
u8g.print(itostr3(
int
(degTargetBed() + 0.5)));
310
lcd_printPGM(PSTR(LCD_STR_DEGREE
" "
));
311
u8g.setPrintPos(81,27);
312
u8g.print(itostr3(
int
(degBed() + 0.5)));
313
lcd_printPGM(PSTR(LCD_STR_DEGREE
" "
));
314
if
(!isHeatingBed()) u8g.drawBox(88,18,2,2);
315
else
316
{
317
u8g.setColorIndex(0);
// white on black
318
u8g.drawBox(88,18,2,2);
319
u8g.setColorIndex(1);
// black on white
320
}
321
322
// Fan
323
u8g.setFont(FONT_STATUSMENU);
324
u8g.setPrintPos(104,27);
325
#if defined(FAN_PIN) && FAN_PIN > -1
326
u8g.print(itostr3(
int
((fanSpeed*100)/256 + 1)));
327
u8g.print(
"%"
);
328
#else
329
u8g.print(
"---"
);
330
#endif
331
332
333
// X, Y, Z-Coordinates
334
u8g.setFont(FONT_STATUSMENU);
335
u8g.drawBox(0,29,128,10);
336
u8g.setColorIndex(0);
// white on black
337
u8g.setPrintPos(2,37);
338
u8g.print(
"X"
);
339
u8g.drawPixel(8,33);
340
u8g.drawPixel(8,35);
341
u8g.setPrintPos(10,37);
342
u8g.print(ftostr31ns(current_position[X_AXIS]));
343
u8g.setPrintPos(43,37);
344
lcd_printPGM(PSTR(
"Y"
));
345
u8g.drawPixel(49,33);
346
u8g.drawPixel(49,35);
347
u8g.setPrintPos(51,37);
348
u8g.print(ftostr31ns(current_position[Y_AXIS]));
349
u8g.setPrintPos(83,37);
350
u8g.print(
"Z"
);
351
u8g.drawPixel(89,33);
352
u8g.drawPixel(89,35);
353
u8g.setPrintPos(91,37);
354
u8g.print(ftostr31(current_position[Z_AXIS]));
355
u8g.setColorIndex(1);
// black on white
356
357
// Feedrate
358
u8g.setFont(u8g_font_6x10_marlin);
359
u8g.setPrintPos(3,49);
360
u8g.print(LCD_STR_FEEDRATE[0]);
361
u8g.setFont(FONT_STATUSMENU);
362
u8g.setPrintPos(12,48);
363
u8g.print(itostr3(feedmultiply));
364
u8g.print(
'%'
);
365
366
// Status line
367
u8g.setFont(FONT_STATUSMENU);
368
u8g.setPrintPos(0,61);
369
u8g.print(lcd_status_message);
370
371
}
372
373
static
void
lcd_implementation_drawmenu_generic(uint8_t row,
const
char
* pstr,
char
pre_char,
char
post_char)
374
{
375
376
377
uint8_t n = LCD_WIDTH - 1 - 2;
378
379
if
((pre_char ==
'>'
) || (pre_char == LCD_STR_UPLEVEL[0] ))
380
{
381
u8g.setColorIndex(1);
// black on white
382
u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT);
383
u8g.setColorIndex(0);
// following text must be white on black
384
}
else
u8g.setColorIndex(1);
// unmarked text is black on white
385
386
u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
387
if
(pre_char !=
'>'
) u8g.print(pre_char);
else
u8g.print(
' '
);
// Row selector is obsolete
388
389
n -= lcd_print_string(pstr);
390
while
(n--) u8g.print(
' '
);
391
392
393
394
395
396
397
398
399
400
u8g.print(post_char);
401
u8g.print(
' '
);
402
403
u8g.setColorIndex(1);
// restore settings to black on white
404
405
return
;
406
}
407
408
static
void
lcd_implementation_drawmenu_setting_edit_generic(uint8_t row,
const
char
* pstr,
char
pre_char,
char
* data)
409
{
410
static
unsigned
int
fkt_cnt = 0;
411
412
uint8_t n = LCD_WIDTH - 1 - 2 - strlen(data);
413
414
u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
415
u8g.print(pre_char);
416
417
n -= lcd_print_string(pstr);
418
u8g.print(
':'
);
419
420
while
(n--) u8g.print(
' '
);
421
422
423
424
425
426
427
428
429
430
431
u8g.print(data);
432
433
return
;
434
}
435
436
static
void
lcd_implementation_drawmenu_setting_edit_generic_P(uint8_t row,
const
char
* pstr,
char
pre_char,
const
char
* data)
437
{
438
uint8_t n = LCD_WIDTH - 1 - 2 - strlen_(data);
439
440
441
u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
442
u8g.print(pre_char);
443
444
n -= lcd_print_string(pstr);
445
u8g.print(
':'
);
446
447
while
(n--) u8g.print(
' '
);
448
lcd_print_string(data);
449
450
return
;
451
452
453
454
455
456
457
458
459
}
460
461
#define lcd_implementation_drawmenu_setting_edit_int3_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', itostr3(*(data)))
462
#define lcd_implementation_drawmenu_setting_edit_int3(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', itostr3(*(data)))
463
#define lcd_implementation_drawmenu_setting_edit_float3_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr3(*(data)))
464
#define lcd_implementation_drawmenu_setting_edit_float3(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr3(*(data)))
465
#define lcd_implementation_drawmenu_setting_edit_float32_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr32(*(data)))
466
#define lcd_implementation_drawmenu_setting_edit_float32(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr32(*(data)))
467
#define lcd_implementation_drawmenu_setting_edit_float5_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
468
#define lcd_implementation_drawmenu_setting_edit_float5(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
469
#define lcd_implementation_drawmenu_setting_edit_float52_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr52(*(data)))
470
#define lcd_implementation_drawmenu_setting_edit_float52(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr52(*(data)))
471
#define lcd_implementation_drawmenu_setting_edit_float51_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr51(*(data)))
472
#define lcd_implementation_drawmenu_setting_edit_float51(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr51(*(data)))
473
#define lcd_implementation_drawmenu_setting_edit_long5_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
474
#define lcd_implementation_drawmenu_setting_edit_long5(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
475
#define lcd_implementation_drawmenu_setting_edit_bool_selected(row, pstr, pstr2, data) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, '>', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
476
#define lcd_implementation_drawmenu_setting_edit_bool(row, pstr, pstr2, data) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, ' ', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
477
478
//Add version for callback functions
479
#define lcd_implementation_drawmenu_setting_edit_callback_int3_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', itostr3(*(data)))
480
#define lcd_implementation_drawmenu_setting_edit_callback_int3(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', itostr3(*(data)))
481
#define lcd_implementation_drawmenu_setting_edit_callback_float3_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr3(*(data)))
482
#define lcd_implementation_drawmenu_setting_edit_callback_float3(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr3(*(data)))
483
#define lcd_implementation_drawmenu_setting_edit_callback_float32_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr32(*(data)))
484
#define lcd_implementation_drawmenu_setting_edit_callback_float32(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr32(*(data)))
485
#define lcd_implementation_drawmenu_setting_edit_callback_float5_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
486
#define lcd_implementation_drawmenu_setting_edit_callback_float5(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
487
#define lcd_implementation_drawmenu_setting_edit_callback_float52_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr52(*(data)))
488
#define lcd_implementation_drawmenu_setting_edit_callback_float52(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr52(*(data)))
489
#define lcd_implementation_drawmenu_setting_edit_callback_float51_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr51(*(data)))
490
#define lcd_implementation_drawmenu_setting_edit_callback_float51(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr51(*(data)))
491
#define lcd_implementation_drawmenu_setting_edit_callback_long5_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
492
#define lcd_implementation_drawmenu_setting_edit_callback_long5(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
493
#define lcd_implementation_drawmenu_setting_edit_callback_bool_selected(row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, '>', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
494
#define lcd_implementation_drawmenu_setting_edit_callback_bool(row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, ' ', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
495
496
void
lcd_implementation_drawedit(
const
char
* pstr,
char
* value)
497
{
498
u8g.setPrintPos(0 * DOG_CHAR_WIDTH_LARGE, (u8g.getHeight() - 1 - DOG_CHAR_HEIGHT_LARGE) - (1 * DOG_CHAR_HEIGHT_LARGE) - START_ROW );
499
u8g.setFont(u8g_font_9x18);
500
lcd_printPGM(pstr);
501
u8g.print(
':'
);
502
u8g.setPrintPos((14 - strlen(value)) * DOG_CHAR_WIDTH_LARGE, (u8g.getHeight() - 1 - DOG_CHAR_HEIGHT_LARGE) - (1 * DOG_CHAR_HEIGHT_LARGE) - START_ROW );
503
u8g.print(value);
504
}
505
506
static
void
lcd_implementation_drawmenu_sdfile_selected(uint8_t row,
const
char
* pstr,
const
char
* filename,
char
* longFilename)
507
{
508
char
c;
509
uint8_t n = LCD_WIDTH - 1;
510
511
if
(longFilename[0] !=
'\0'
)
512
{
513
filename = longFilename;
514
longFilename[LCD_WIDTH-1] =
'\0'
;
515
}
516
517
u8g.setColorIndex(1);
// black on white
518
u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT);
519
u8g.setColorIndex(0);
// following text must be white on black
520
u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
521
u8g.print(
' '
);
// Indent by 1 char
522
523
while
((c = *filename) !=
'\0'
)
524
{
525
u8g.print(c);
526
filename++;
527
n--;
528
}
529
while
(n--){
530
u8g.print(
' '
);
531
}
532
u8g.setColorIndex(1);
// black on white
533
}
534
535
static
void
lcd_implementation_drawmenu_sdfile(uint8_t row,
const
char
* pstr,
const
char
* filename,
char
* longFilename)
536
{
537
char
c;
538
uint8_t n = LCD_WIDTH - 1;
539
540
if
(longFilename[0] !=
'\0'
)
541
{
542
filename = longFilename;
543
longFilename[LCD_WIDTH-1] =
'\0'
;
544
}
545
546
u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
547
u8g.print(
' '
);
548
549
while
((c = *filename) !=
'\0'
)
550
{
551
u8g.print(c);
552
553
filename++;
554
n--;
555
}
556
while
(n--){
557
u8g.print(
' '
);
558
}
559
560
}
561
562
static
void
lcd_implementation_drawmenu_sddirectory_selected(uint8_t row,
const
char
* pstr,
const
char
* filename,
char
* longFilename)
563
{
564
char
c;
565
uint8_t n = LCD_WIDTH - 2;
566
567
if
(longFilename[0] !=
'\0'
)
568
{
569
filename = longFilename;
570
longFilename[LCD_WIDTH-2] =
'\0'
;
571
}
572
u8g.setColorIndex(1);
// black on white
573
u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT);
574
u8g.setColorIndex(0);
// following text must be white on black
575
u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
576
u8g.print(
' '
);
// Indent by 1 char
577
u8g.print(LCD_STR_FOLDER[0]);
578
579
while
((c = *filename) !=
'\0'
)
580
{
581
u8g.print(c);
582
583
filename++;
584
n--;
585
}
586
while
(n--){
587
u8g.print(
' '
);
588
}
589
u8g.setColorIndex(1);
// black on white
590
}
591
592
static
void
lcd_implementation_drawmenu_sddirectory(uint8_t row,
const
char
* pstr,
const
char
* filename,
char
* longFilename)
593
{
594
char
c;
595
uint8_t n = LCD_WIDTH - 2;
596
597
if
(longFilename[0] !=
'\0'
)
598
{
599
filename = longFilename;
600
longFilename[LCD_WIDTH-2] =
'\0'
;
601
}
602
603
u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
604
u8g.print(
' '
);
605
u8g.print(LCD_STR_FOLDER[0]);
606
607
while
((c = *filename) !=
'\0'
)
608
{
609
u8g.print(c);
610
611
filename++;
612
n--;
613
}
614
while
(n--){
615
u8g.print(
' '
);
616
}
617
}
618
619
#define lcd_implementation_drawmenu_back_selected(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0])
620
#define lcd_implementation_drawmenu_back(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, ' ', LCD_STR_UPLEVEL[0])
621
#define lcd_implementation_drawmenu_submenu_selected(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, '>', LCD_STR_ARROW_RIGHT[0])
622
#define lcd_implementation_drawmenu_submenu(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, ' ', LCD_STR_ARROW_RIGHT[0])
623
#define lcd_implementation_drawmenu_gcode_selected(row, pstr, gcode) lcd_implementation_drawmenu_generic(row, pstr, '>', ' ')
624
#define lcd_implementation_drawmenu_gcode(row, pstr, gcode) lcd_implementation_drawmenu_generic(row, pstr, ' ', ' ')
625
#define lcd_implementation_drawmenu_function_selected(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, '>', ' ')
626
#define lcd_implementation_drawmenu_function(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, ' ', ' ')
627
628
static
void
lcd_implementation_quick_feedback()
629
{
630
631
#if BEEPER > -1
632
SET_OUTPUT(BEEPER);
633
for
(int8_t i=0;i<10;i++)
634
{
635
WRITE(BEEPER,HIGH);
636
delay(3);
637
WRITE(BEEPER,LOW);
638
delay(3);
639
}
640
#endif
641
}
642
#endif//ULTRA_LCD_IMPLEMENTATION_DOGM_H
Итог: Все это конечно не плохо, но сам подход ведёт к большому количеству доработок кода (как уже существующего так и добавляемого). Так, например, изменения которые мы сделали они каснулись только меню. А отображение строк на стартовой странице экрана также остается с "пробелами" между буквами ("*Г*о*т*о*в"). Можно и тут что-нибудь придумать. Но надо мыслить универсально! Именно поэтому я не считаю этот способ хорошим решением проблемы руссификации. А склоняюсь к методу, который предложил "NeiroN".
Кстати поковырявшись в редакторе FontForge нашол как добавить(Encoding->Add encoding Name ...) кодировки мелкомягких называются "windows-1251" и "cp866" - теперь можно запилить шрифты русские и в этих кодировках. Кстати строки выводимые в сериал(веб интерфейс, запись в файлы) будут в них же(потому что скетч перед заливкой конвертится в них), вот только "Монитор порта" их не съест, ну можно любым другим терминалом.
Выкладывать пока рано - не тестировал.
Протестировал! Все работает как Запланировано
/lib/pde.jar Настройки->Кодировка строк->[кодировка шрифта]
PROFFIT!!!
Специально зарегистрировался, чтобы сказать спасибо.
Спасибо.
Так и не получилось по NeiroN'овски сделать. Вот взять, например, такой код:
1
char
lcd_status_message[20] =
"АБВГДЕЖЗИКЛМН"
;
Объявлен однобайтовый массив размером в 20 символов и тутже проинициализировали его 13 символами. С учетом применения либы pde.jar by NeiroN, которая должна перед компиляцией текст "АБВГДЕЖЗИКЛМН" из UTF-8 перевести в указанную мною однобайтовую кодировку, компилятор выдает ошибку вида: инициализируемая строка слишком велика для объявленного массива.
Я решил не тратить время на поиск особенностей своей стреды, а решил на корню решить проблему - сохранять текст сразу в нужной мне кодировке. Я месяц как уже хотел перейти с Arduino IDE на Eclipse c плагином для работы с AVR микроконтроллерами. А тут ещё один лишний повод сделать это. Надо сказать пришлось немного подза***ться, но результат стоил стараний - удобство, быстрота, комфорт при работе с разными кодировками. В итоге взял за основу Windows-1251, налобал шрифт для неё в *.bdf формате, сконвертил, скомпилил, зашил и вот результат:
Не поделетесь файликами для русскикации прошивки?
И мне, пожалуйста =)
Что значит "для руссификации прошивки"? Просмотрите тему сначала. Уже всё выложили.
Сорри. Но просто мои познания далеки от топик стартера.
А свой Мендель русифицировать хочеться. (заводской дисплей 12864)
Я бы была признательна за готовые файлы, которые необходимо поменять в прошивке чтобы получился русский шрифт как на скрине выше.
Так что мне если можно, мне именно "файликом". Пиво или шоколадку в качестве благодарности гарантирую ;)
Офтоп! Вот интересно, осенне - весеннее увеличение числа девушек, резко увлекшихся ардуоной как то связано с приближающейся сессией?
Офтоп! Вот интересно, осенне - весеннее увеличение числа девушек, резко увлекшихся ардуоной как то связано с приближающейся сессией?
а, мне уже и не интересно, почему буквы, сцуко, "русские" - в свете чудеснога спасения хуйлом Крыма от бендеровцев, уже не удивляюсь врождённому идиотизму "рускага народа".
Сорри. Но просто мои познания далеки от топик стартера.
А свой Мендель русифицировать хочеться. (заводской дисплей 12864)
Я бы была признательна за готовые файлы, которые необходимо поменять в прошивке чтобы получился русский шрифт как на скрине выше.
Так что мне если можно, мне именно "файликом". Пиво или шоколадку в качестве благодарности гарантирую ;)
Парни, ну вы реально как здрасте среди ночи. Какой дисплей? Синий с белыми квадратиками или всёж на вышеобсуждаемом контроллере?
В какой Вы прошивке и что собрались менять и в чём именно Вы слабы?
Наверное Вы думаете что существует некий файл, который можно просто загрузить в экранчик как то подключив его к компьютеру и он сразу скажет - " О-о-о-о, ПРИВЕТ МИР!" ну и в таком духе? Нет.
Я надеюсь Ваши познания достаточны чтоб уметь читать? Уверен что да. Прочтите Всю тему сначала, уж как тут я выносил мощзг форумчанам и тому же засранцу Клапуцию, и как они всё это мне разжували, по моему детальней некуда. Вы просто примерно поймёте что русские символы не просто отдельный файлик, а целый ритуал и в то же время мелочь, приятная мелочь, особенно когда сам нарисовал.
P.S. Извиняюсь за "Парни",окончание глагола "былА" не сразу увидел.
Я уже где-то кидал ссылку на "свою" среду целиком, со всеми нужными и ненужными библиотеками, тем что я пишу для
развлечениятренировки мозговДа, так и есть. В этой же теме выше. Я ж не просто так посылаю в начало...
Надо заняться и сконвертировать все шрифты в windows-1251 кодировку, чтобы вместо дополнительных символов там была кириллица. один фиг памяти столько же занимают.
Сорри, если кого задела или обидела ;(
Экран вот такой: http://www.elecrow.com/12864-smart-lcd-controller-with-adapter-for-reprap-ramps-14-p-1095.html
Прошивка: Marlin
Принтер: Prusa I2 Mendel
Ссылку на среду видела. Спасибо. Просто файлов Марлина там не нашла. Поэтому и спросила.
Да. реально полагала, что есть какой-то файлик вроде Configuration.h или language.h в котором хранится русский шрифт. И считала что кому-то не жалко ими поделиться.
Так с этого надо было начинать. Тогда стучите к m3xx.
И я тоже оффтоп. Не пойму, вы все что 3Д принтер почастям собираете чтоли?
стУдентЫ, колитесь - в каком универе лаба с принтером и "рускими буквами"?
Меня давно терзает вопрос - "в каком универе работает пухлявый?" - полюбому это он задал детишкам)))
Так с этого надо было начинать. Тогда стучите к m3xx.
И я тоже оффтоп. Не пойму, вы все что 3Д принтер почастям собираете чтоли?
1) В теме не отвечает. А как в личку ему стукнуть?
2) нет. Покупаем в сборе в Китае, а после получения хочеться чтобы принтер заговорил на великом и могучем...
скомпилил, зашил и вот результат:
Куда тащить шоколадку? =)
temperator, у меня не всегда есть возможность попасть на форум, поэтому я могу ответить не сразу. К вашему сожалению это не один файлик, а целая последовательность действий. Мои результы были получины при помощи: Eclipse IDE + AVR Plugin, создания собственных шрифтов для кодировки в которой я пишу русский текст (в моём случае это Windows-2151), доработки кода в 2-3 файлах + создание новых. Если в целом смотреть на задачу руссификации графического дисплея,то у вас есть 2 выхода: пойти по пути NeiroN (работая в стандартной среде Arduino IDE с его либой, которая перед компиляцией конвертит текст из стандартной ардуиновской кодировки UTF-8 в ту, для которой у вас есть шрифты), либо как я - поставить Eclipse IDE (настроив его под AVR) и уже работать в той кодировке, под которую вы заточили свои шрифты. И в том и в другом случае предётся:
0. Создать шрифты для своей кодировки в bdf-формате, как это, например, было уже сделано goodwind'ом и сконвертировать их в u8g формат при помощи bdf2u8g (все это уже было)
1. Заменить ими шрифты прописанные в файле dogm_font_data_marlin.h. Я не стал менять стандартный марлиновский шрифт, поэтому новые шрифты я сделал в других файлах, а в этом - я лишь добавил концовочку, которая в случая компиляции английской прошивки использует марлиновски шрифт, а в случае русской - собственносделанный (смотрите мои предыдущие пасты).
2. Ещё я вынес русский перевод из language.h в отдельный файл с той целью, чтобы language.h редактировать в UTF-8 а русский текст в Windows-1251. Если идти по пути NeiroN'а, то этот пункт не нужно выполнять.
По какому пути вам пойти - выбирайте сами.
Разрешите предугадать реаакцию temperator. я непоняла не единого слова...
По всей видимости предсавление следующее:
как в копьютерах есть проги и иногда идут в комплекте руссификаторы, так и сдесь видимо была надежда что Вы сделали готовый руссификатор и Вас не затруднит им поделится.
Разрешите предугадать реаакцию temperator. я непоняла не единого слова...
По всей видимости предсавление следующее:
как в копьютерах есть проги и иногда идут в комплекте руссификаторы, так и сдесь видимо была надежда что Вы сделали готовый руссификатор и Вас не затруднит им поделится.
Примерно так и есть =)
temperator, у меня не всегда есть возможность попасть на форум, поэтому я могу ответить не сразу. К вашему сожалению это не один файлик, а целая последовательность действий. Мои результы были получины при помощи: Eclipse IDE + AVR Plugin, создания собственных шрифтов для кодировки в которой я пишу русский текст (в моём случае это Windows-2151), доработки кода в 2-3 файлах + создание новых. Если в целом смотреть на задачу руссификации графического дисплея,то у вас есть 2 выхода: пойти по пути NeiroN (работая в стандартной среде Arduino IDE с его либой, которая перед компиляцией конвертит текст из стандартной ардуиновской кодировки UTF-8 в ту, для которой у вас есть шрифты), либо как я - поставить Eclipse IDE (настроив его под AVR) и уже работать в той кодировке, под которую вы заточили свои шрифты. И в том и в другом случае предётся:
0. Создать шрифты для своей кодировки в bdf-формате, как это, например, было уже сделано goodwind'ом и сконвертировать их в u8g формат при помощи bdf2u8g (все это уже было)
1. Заменить ими шрифты прописанные в файле dogm_font_data_marlin.h. Я не стал менять стандартный марлиновский шрифт, поэтому новые шрифты я сделал в других файлах, а в этом - я лишь добавил концовочку, которая в случая компиляции английской прошивки использует марлиновски шрифт, а в случае русской - собственносделанный (смотрите мои предыдущие пасты).
2. Ещё я вынес русский перевод из language.h в отдельный файл с той целью, чтобы language.h редактировать в UTF-8 а русский текст в Windows-1251. Если идти по пути NeiroN'а, то этот пункт не нужно выполнять.
По какому пути вам пойти - выбирайте сами.
Есть и 3й путь. Выпросить у Вас готовую прошивку, а уже потом подправить под себя конфиг =)
Я понимаю что путь неправильный, но он единственный, который я смогла бы реализовать.
Можно с Вами по такому пути договориться? Сколько коврижек для меня такое удовольствие будет стоить? =)
P.S. А как на форуме писать в личку?
К сожалению, из-за отличия кодировки файла с русским переводом от UTF-8, Arduino IDE не сможет скомпилировать код, который успешно компилируется в Eclipse IDE. Если вы установите среду, то я без особых усилий выслал бы вам инструкцию и необходимые файлы для вашего принтера на указанную вами электронную почту.
Большущие спасибо. Начну освоение ;)
mariya_gadaeva(тяф-тяф)mail.ru
Готовьте коврижки :)