Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
ZXDev + кириллица https://zx.oberon.org/forum/viewtopic.php?f=10&t=194 |
Страница 1 из 1 |
Автор: | Zorko [ 21 май 2014, 04:37 ] | ||
Заголовок сообщения: | ZXDev + кириллица | ||
Способ №1. Отзвуки UDG и первой половины таблицы символов Шрифтами у нас ведает модуль GrFonts. Массив символов прописан в файле ZXDev/Lib/GrFonts.c, добавим туда русский шрифт. Подключить легко: Код: "OBERON"
|
Автор: | Zorko [ 21 май 2014, 04:49 ] | ||
Заголовок сообщения: | Re: ZXDev + кириллица | ||
Способ №2. Портабельный Это примерно то же самое, но зато портабельно: Код: "OBERON"
Оба эти способа работают с выводом как с помощью ПЗУ (RST 8), так и кастомно (для модуля Console это OUTPUT_COMPACT или OUTPUT_FAST, что прописывается в конфигураторе ConsoleCfg.h).
|
Автор: | Zorko [ 21 май 2014, 04:53 ] |
Заголовок сообщения: | Re: ZXDev + кириллица |
Способ №3. Самый правильный, но пока не реализован Это чтобы писать WriteStr("ПРИВЕТ МИР") и не переключаться между шрифтами для вывода русского и латинского. Трудность в реализации — это кодировки. В планах есть поддержка кодировок DOS 866 и Windows 1251, выбирать же нужную наверное будет наиболее правильно с помощью директивы, зашитой в комменты, типа: Код: "OBERON"
|
Автор: | Zorko [ 01 июн 2014, 00:23 ] | ||
Заголовок сообщения: | А можно ещё и так: | ||
Адаптировал для ZXDev процедуру LITERY из пакета подпрограмм New Supercode.
|
Автор: | Saferoll [ 25 июн 2014, 18:20 ] |
Заголовок сообщения: | Re: ZXDev + кириллица |
Когда-то очень давно у меня была идея объединить в одном знакогенераторе русские и английские буквы, воспользовавшись сходством по внешнему виду. Например, русские быквы «А,В,С,К,О» похожи на «Эй,Би,Си, Кей,Оу». Но можно пойти и дальше. Если мы можем задать свой знакогенератор, то можно чуть изменить начертание буквы, получив "нечто среднее" между русской и английской, которое можно использовать вместо и той и другой. Например, "D" и "g" можно считать специальными "рукописными" формами буквы "Д" (ну может чуть завитушек у D слева добавить). Английская "r" похожа на "г", "b" на заглавный мягкий знак. Если чуть укоротить палочку у "k", то она станет и русской и английской одновременно. Из "Ш" и "W" можно сделать нечто среднее. Можно объединить не только буквы, но и цифры: букву О и ноль, четыре и Ч, тройку и З, шесть и "бэ". Не помню соединял ли я "в" и восемь или обошелся. Эта идея возникла у меня после прочтения статьи в журнале "Радио" об одноименном компьютере. Там объяснялось, что по техническим причинам невозможно иметь в знакогенераторе более 128 символов, поэтому там и есть только заглавные английские и русские буквы. Но, по моим прикидкам, вот таким объединением удалось впихнуть в 128 символов все 64 русские буквы (заглавные и строчные) и .... вот не буду врать, уже не помню, то ли все английские, то ли только заглавные. Правда пришлось выкинуть всю псевдографику. Все символы должны иметь уникальные 8-битовые коды (КОИ8), которые вводились бы с клавиатуры и хранились в текстовых переменных. Но драйвер вывода должен бы в текстовую экранную память помещать некоторые коды не напрямую, а преобразовав в другой, как показано выше. Ни у меня, ни у кого поблизости не было тогда никакого компьютера, писать статью в журнал я поленился (или постеснялся). Так что идея была чисто теоретическая:я просто прикинул на бумаге какие буквы на какие похожи. Я даже поленился рисовать их в клеточках знакогенератора, вполне возможно, что "стилизованные русанглийские" символы выглядели бы неразборчиво в знакоместах 6х8. Конечно идея использовать сходство начертаний не нова, в любой более-менее приличной русскоязычной книге про Спектрум можно прочесть про использование графики UDG, цифры 3 и сходных по начертанию английских букв для получения на экране всего русского алфавита (включая Ё), правда только в заглавном варианте. Однако, используя изложенные в начале поста соображения, можно "форсировать сходство" и создать специальный алфавит, содержащий и русские и английские символы одновременно без необходимости переключения. Русские и английские буквы в текстовых строках будут иметь уникальные коды в какой-то кодировке, а замену кодов будут производить процедуры вывода. Так что эта старая идея, возможно, кому-то пригодится и сейчас. |
Автор: | Zorko [ 27 июн 2014, 13:56 ] |
Заголовок сообщения: | Re: ZXDev + кириллица |
Для облегчения реализации этой идеи с укладыванием всего множества символов в 128 кодов (и возможности использовать различные кодировки) есть такое предложение: реализовать в XDev/Ofront самостоятельное приведение всех строк в исходнике при компиляции к нужной кодировке, указанной, например, в комментарии специального вида. Притом чтобы можно было использовать и готовые таблицы кодировок, и пользовательские. Последнее открывает массу возможностей по автоматизации криптования текстовых строк, чтобы их труднее было искать в бинарном коде, и тому подобных задач. Например, перекодировать похожие по начертанию русские буквы в коды их латинских аналогов, притом в исходнике они останутся русскими. Для этого планирую создать таблицы перекодировки 128 верхних или всех 256 символов. С возможностью добавлять пользовательские таблицы в виде обычных файлов, как это было реализовано, например, в DOS Navigator'е. |
Автор: | Saferoll [ 27 июн 2014, 16:31 ] |
Заголовок сообщения: | Re: ZXDev + кириллица |
Zorko писал(а): Для облегчения реализации этой идеи с укладыванием всего множества символов в 128 кодов Но стандартный знакогенератор Спектрума начинается с пробела (код 32), поэтому содержит меньше 128 символов.
... Для этого планирую создать таблицы перекодировки 128 верхних или всех 256 символов. С возможностью добавлять пользовательские таблицы в виде обычных файлов, как это было реализовано, например, в DOS Navigator'е. |
Автор: | Zorko [ 27 июн 2014, 22:10 ] |
Заголовок сообщения: | Re: ZXDev + кириллица |
Ну так пусть там будут нули. ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |