Один маленький совет) Бинарники лучше паковать KPack'ом. Последнюю версию, например, можно сжать больше, чем в 6 раз.
Да, да, про Kpack я знаю, исполняемые файлы он сжимает очень хорошо (а здесь он особо хорошо жмёт внедрённый растровый шрифт). Просто промежуточные (альфа, бета) версии программ я KPack'ом не сжимал
.
т. к. исходных кодов в архиве нет, то интересно узнать следующее :
как сделан крупный шрифт ?
Крупный шрифт сделан так:
1. Был загружен из интернета пакет console-cyrillic_0.9-16_all.deb из репозитария Ubuntu. Архив был распакован.
2. Был загружен пакет утилит console-tools-cyrillic-0.9.tar.gz.
3. С помощью утилиты psf2xbm было получено изображение, содержащее все символы шрифта 866_8x16 в формате xbm
4. С помощью GIMP'a размер изображения был изменён (увеличен вдвое по ширине и высоте). Изображение было сохранено в формате BMP.
5. С помощью самописной утилиты на C# вышеупомянутое изображение было преобразовано в "сырой" формат с глубиной цвета 1 бит (чёрный/белый) для компиляциии в FASM. Этот кусок "сырых" данных был добавлен в исходник:
Code: Select all
...
big_font:
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
...
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
db 0, 0, 63, 252, 63, 252, 192, 3, 192, 3
db 204, 51, 204, 51, 192, 3, 192, 3, 192, 3
db 192, 3, 207, 243, 207, 243, 195, 195, 195, 195
...
6. В программе текст отрисовывается побуквенно с помощью сис. функции 65 как изображение с палитрой с глубиной цвета одно бит. При этом к адресу big_font добавляется смещение, чтобы получить нужный символ (каждый символ описывается 64 байтами). В качестве палитры выбирается нужная в данный конкретный момент (серый/чёрный, серый/тёмно-серый, серый/красный либо серый/зелёный).
P.S.: исходник в текущем виде вложил