Вывод делать через маску. Всего два варианта: #f0 и #0f
Символы сами кодировать тоже выгоднее двойными. Одновременно и левую и правую половинку. Т.е. допустим #00,#77,#55,#55,#55,#55,#77,#00 - "квадратный" вариант нолика. И сдвиги нафиг не нужны.
Вывод делать через маску. Всего два варианта: #f0 и #0f
Символы сами кодировать тоже выгоднее двойными. Одновременно и левую и правую половинку. Т.е. допустим #00,#77,#55,#55,#55,#55,#77,#00 - "квадратный" вариант нолика. И сдвиги нафиг не нужны.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Если мне не изменяет склероз, есть 3 подхода к печати символов 4х8: экономный, нормальный и быстрый. Все 3 подхода отличаются форматом хранения символов в шрифте
1)в шрифте только печатные символы (32-255, может быть меньше) по 2 в 8 байтах. весьма экономно, но относительные трудности с расчетом адреса символа и его доставанием
2)в шрифте символы продублированы, сам шрифт имеет "экранную" структуру (для ускорения). Вывод по маске 15/240 (#0f/#f0).
3)два шрифта в экранном формате. В одном символы слева, в другом- справа. Крайне неэкономно по памяти, зато очень и очень быстро. Обычно такой вариант редко используется, поскольку выигрыш в скорости обычно не перекрывает проигрыша в памяти (2кб).
Если нужна печать без привязки к знакоместам, то тут почти все ухищрения по скорости идут насмарку, ибо надо скроллировать данные перед выводом. В таком случае символы лучше хранить по одному в 8 байтах, прижатые к левому краю. Экранную структуру шрифта лучше всегда использовать для ускорения вывода и поиска символа.
Куча всего разного собрано на http://www.zxdn.narod.ru/
Для вывода без привязки к знакоместу можно неэкономично хранить в памяти 8 уже сдвинутых циклически шрифтов, а затем их выводить, используя соответствующую маску, а-ля вывод 4*8.
В плюс к этому, для ускорения вывода, имеет смысл делать вывод не посимвольно, а построчно; т.е. сначала рисуется верхняя линия всей текстовой строки, затем следующая (ниже) и так далее.
Последний раз редактировалось Evgeny Muchkin; 10.04.2007 в 10:58.
GMX для Scorpion'а можно приобрести здесь
ZX-BUS XTRaiser v2.1 (активный расширитель ZX-BUS здорового человека на 3 слота) можно приобрести здесь
SMUC 2.1 rev. C Black & White edition (v.2022) можно приобрести здесь
Scorpion ZS-256 Turbo, GMX 2048Kb, ZX-BUS XTRaiser v2.0, SMUC v2.0 rev. A, SDCard 32Gb, GS 2Mb,
ZXMC 2v28, TSFM, FDD 5'25 Teac x2, FDD 3'5 Sony, VGA&PALv2.09, PC Keyboard & Mouse
В моём Grand's Boot процедура печати очевидно именно такая (написана мной в 2000 году): весь фонт занимает в два раза меньше места. Исходники на ZX Open Source: http://opensourcezx.untergrund.net/c...and_boot2.html.Сообщение от mig'95
Последний раз редактировалось Grand; 11.11.2008 в 03:25. Причина: изменение гиперссылки
Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.
Grand's - сайт об электронно-вычислительной технике (зеркало)
Если критична память то
можно попробовать следующий алгоритм:
хранить в памяти не 1 набор знакомест, а 4 т.е.
1 это нормальное значение ххххХХХХ,
2 это сдвинутое значение XxxxxXXX,
3 xxxxXXXX
4 xxxXXXXx
маленькие х это само знакоместо, большие пустота.
Таким образом чтоб получить 3 вариант XXxxxxXX требуется сдвинуть 1 раз или влево или вправо.
Если память не критична то наприсовать 5 табличку.
впринципе этот алгоритм можно подправить под любое колво пикселей.
А езе самый быстрый вариант это создать отдельно табличку с 2 буквами. по идее навскидку 32 русских буквы комбинации кадой с каждой это 1024 вариации 32*32.
а в букве 8 сайт соответсвенно 1024*8=8192. зато оч много проблем решается.
Последний раз редактировалось MYA; 20.04.2007 в 18:47.
В своем Сапере - смотри ветку про игры - я в бейсике сделал шрифт 4*8. Для этого использовал два нарисованных шрифта - одна буква нарисована слева, другая соответственно справа - а потом при печати накладывал их по OR'у.
это есть долго.
с компилятором DELPHIN быстро.
Меня всегда интересовал вопрос: как в таком шрифте делать буквы Ж, Ш и Щ
---------- Post added at 16:32 ---------- Previous post was at 16:29 ----------
На самом деле, комбинаций меньше. Т.к. после гласных нет мягкого знака, не встречаются две подряд буквы ЙЙ, ЫЫ и т.п. К тому же, неэкономное хранение этих комбинаций с лихвой компенсируется экономным в 2 раза кодированием слов из них. Так что, предложенный вариант имеет место быть.
Последний раз редактировалось Andrew771; 12.04.2011 в 16:35.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)