Пробный запуск среды разработки мк-152 под Линуксом

Попробовал запустить среду разработки для МК-152 под Linux-ом в эмуляторе Wine.

Версии:
ОС (Debian 4.0):
Linux dhcppc4 2.6.18-6-686 #1 SMP Wed Jan 23 03:23:22 UTC 2008 i686 GNU/Linux

Wine:
Wine 0.9.25

Среда разработки:
mk_v106.exe.zip

Результат - проблемы с кириллицей (меню не видны совсем):

Среда разработки МК-152 под Линуксом

Было бы неплохо, если бы в СЕМИКО переписали эту среду разработки под GTK, да еще бы скомпилировали под несколько популярных дистрибутивов Linux

Запускал среду разработки, этой проблемы(как и проблем вообще) не было
Ubuntu 7.10
wine 0.9.54
рекомендую свежий вайн:

http://www.winehq.org/site/download-deb
For Debian Etch (4.0):

sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/etch.list -O /etc/apt/sources.list.d/winehq.list

не удалось обновить wine какие-то ошибки. Поздновато - потом буду разбираться.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Вон те черточки над панелью инструментов и есть меню :-)
Просто размер шрифта не тот. Надпись в окне - это шрифт без кириллицы.
Посмотрите шрифты в каталогах и настройки wine, должно работать даже на более ранних версиях, чем Ваша.

Консольный компилятор под Linux уже выложен на сайте, если не будет выявлено ошибок, там же будут и его исходники. Программа для обмена с МК через порт тоже постепенно готовится, остальные пока ждут своего часа. На их базе можно графическую среду сделать. А еще проще и правильнее - оболочку для запуска этих программ.

mk.exe c английским интерфейсом? А нет ли возможности сделать английский интерфейс для mk.exe ? Проблема в том, что не всегда есть возможность выставить русскую системную локаль в компьютере, без нее - весь интерфейс знаками вопроса.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Переведёте? Если переведёте меню, сообщения, справку и т.д. - можно попробовать.

Можно даже интерфейс самой ЭКВМ перевести - для экспортного варианта исполнения.

Помог бы с большим интересом. Экспортный вариант ЭКВМ тоже очень заманчиво выглядит - а будет ли место в ПЗУ для дополнительных ресурсов?

В любом случае начать надо с мк.ехе. Там предусмотрена локалилзация или все меню и сообщения "захардкодены" под русский язык?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Локализация не предусмотрена, поскольку такой задачи не ставилось. Но это не означает, что она невозможна в принципе.

Если отсутствие английского языка критично - используйте консольные программы. Их достоинство в том, что они есть уже сейчас.

Хотя можно снова попробовать mk.exe через wine запустить, предварительно разобравшись со шрифтами.

MK.EXEКстати, вот под этой штукой MK.EXE прекрасно пашет:
https://www.virtualbox.org/

Правда, интерфейс с COM-портами пока не запустился. Есть подозрение, что мой USB-COM вообще не работает на OS X Lion. Соответственно, и виртуальной машине он недоступен.

под виртуал боксом много чего работает и прошивается, это да.
Но у меня дома сейчас нет компьютеров под линуксом, только под семерками. Так что англоязычная мк.exe очень бы пригодилась

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

виртуал7. Вроде, виртуальная коробка должна под семёркой работать.

Также под семёркой можно запускать MK.EXE из командной строки или пакетного файла, при необходимости дав предварительно команду chcp 866. Не уверен, что поможет, но я бы попробовал.

cp1251В mk.exe оконный интерфейс в кодировке cp1251. Команда chcp относится к выводу в терминальном режиме.

Логика. По логике вы правы и chcp должно влиять лишь на консольные приложения.

Но откуда-то же, из каких-то закромов, wine достаёт свою странную кодировку! chcp 1251 тоже можно попробовать. Как и изменить эмулируемую (или что там с ней wine делает) винду на русскую.

wineconsoleКонсольные приложения (CUI) в пакете wine запускаются в отдельной программе - wineconsole. Сама wine эмулирует только GUI.

Используемая для интерфейса кодировка определяется эмулируемой версией ОС, которая назначается для каждого приложения отдельно или выставляется по умолчанию. Возможность корректного отображения зависит также от наличия подходящих шрифтов в системе.

Интернационализация мк.exe - первый шаг? Что-то не нашел последнюю ветку форума, где шел разговор про хак ресурсов в мк.exe с целью добавить английский язык.
Вопрос к Михаил Борисовичу - а есть ли текстовый файл или эксел со всеми текстами (меню, сообщения и т.п.)? Я бы мог набросать английский вариант. Мне так было бы в 100500 раз удобнее, так как (i) доступ к "руссколокальному" компу у меня ограничен и (ii) мой основной девайс сейчас iPad - я мог бы прямо с него работать.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Файл. Отдельного файла нет, но сделать его несложно.

Только как будет происходить дальнейшее сопровождение и обновление английских или двуязычных версий?

Может стоит подумать о среде на базе свободного редактора с подключаемыми внешними модулями, как ранее здесь обсуждалось?

Сопровождение,это да :)
Про открытую среду - это было бы здорово, но как-то эта тема заглохла.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Внешний редактор с модулями нужен для расширения функциональности, проблему локализации он не решает, скорее, наоборот: каждый автор модуля будет выдумывать свой локализатор.

Редактор. Проблему локализации решает открытый исходный код редактора и модулей. Некоторые редакторы могут работать с различными языками и кодировками, на них и следует ориентироваться.

Модулям вообще не обязательно иметь текстовый интерфейс, достаточно соглашений о кодах возврата. К примеру, в наших консольных программах приняты соглашения BSD.

Открытые среды типа Eclipse, наверное, тяжеловесны для такого проекта.
Похоже, что любимый мной легкий Geany IDE поддерживает написание плагинов:
http://www.geany.org/manual/reference/

Можно подумать.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Перевод. Вообще-то проблема не нова и есть стандартное свободное решение:

http://ru.wikipedia.org/wiki/Gettext

Notepad++, похоже, может быть идеальной средой разработки для mk-1xx :)
http://pmk.arbinada.com/node/881

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Экспортное исполнение. Я не профессиональный лингвист, но когда будет готово, могу потестировать на предмет уж совсем грубых ошибок. Иначе мне всё равно придётся на них натыкаться и ругаться. :-)

Ошибки. Потому и хотелось бы, чтобы перевод сделал если и не носитель языка, то человек свободно им владеющий, при этом разбирающийся в теме. Во-первых, чтобы дважды не переделывать; во-вторых - чтобы не выпускать изделие в стиле "урдавюч".

Пока. У меня пока иностранные ученики ЭКВМ не владеют, она остаётся русским изобретением.

Один подержал в руках и является носителем английского языка, но пока что в теме не разбирается и даже простенькую программку на ЯМК не напишет.

Другой вариант - скомпилировать приложение под юникод, тогда русские символы будут отображаться корректно вне зависимости от локали.

Я тоже о таком думал и хотел сказать :) Но как тогда приложение будет взаимодействовать с 1251 таблицей в самой МК? (я не спец в PC приложениях)

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

UnicodeТаблица 1251 должна умереть. Если MK.EXE позволит разрабатывать исходники в UTF-8, это сделает их намного чище и понятней.

Сейчас я разрабатываю программы в vi, а не MK.EXE — соответственно могу свободно использовать в них Юникод, сразу вздохнул свободно.

mkl2mkpКонсольный компилятор mkl2mkp может обрабатывать пять кодировок, включая UTF-8. Разумеется, может и больше - достаточно расширить таблицу перекодировки. Но в текущей версии эта возможность заблокирована для совместимости с mk.exe.

Заливка в МК-1хх из консоли? А чем заливать программу в МК из консоли, не используя мк.ехе?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

pmkcomЕсть такое средство, но оно подвешано в состоянии бета-версии, поэтому существует только для nix и пока не размещено на сайте официально.

Насколько я понимаю, с выходом официальной версии pmkcom, имеющихся на сайте Семико утилит хватит, чтобы реализовать функциональность mk.exe в открытом IDE посредством плагинов?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Утилиты. С учётом того, что на сайте выложены далеко не все консольные утилиты - даже большую.

Да. Да, сейчас я как раз использую mkl2mkp для компиляции текста в utf-8.

TEXTКомментарии при разборе игнорируются. Но оператор .TEXT для кодировки utf-8 в этой версии работать не будет.

Конвертация. Никто не мешает приводить строки к 1251-й странице. Интерфейс пользователя одно, а логика - другое, главное, чтобы они были отделены, как мухи от котлет.

866В ЭКВМ используется вариант cp866.

Текст программы с точки зрения компилятора - это лишь последовательность байт. После обнаружения и обработки псевдооператора .CHARSET в компиляторе переключается таблица перекодировки.

К интерфейсу программы это имеет отношение только в окне редактора. Текст компилируется в cp866 при создании mkp-файла и в кодировку интерфейса (cp1251 для текущих версий mk.exe) при загрузке и выводе на экран исходного текста. Этим, кстати, объясняется торможение интерфейса при обработке относительно длинных файлов, что является недостатком существующей программы.

gtk+ .
> Было бы неплохо, если бы в СЕМИКО переписали эту среду разработки под GTK,
> да еще бы скомпилировали под несколько популярных дистрибутивов Linux

GTK+ это замечательный вариант. Программы под GTK+ уже компилируются под винды (вплоть до виндового GIMP'а) и идут там, как родные. Разве что низкоуровневую работу с портами придётся всё-таки писать для каждой ОС отдельно.

Утилиты коммандной строки. Пробую утилиты коммандной строки, под Линуксом (Дебиан 6.0.5, если что), несколько комментариев для Семико, если вдруг пригодится:

mkl2mkp без аргументов даёт сдвоенную подсказку:

$:~/Desktop/MK/Tools/linux$ ./mkl2mkp 
mkl2mkp -h for help 
 mkl2mkp -h for help

а mkp2mkl не даёт подсказку:

 
$:~/Desktop/MK/Tools/linux$ ./mkp2mkl 
$:~/Desktop/MK/Tools/linux$

mkl2mkp с ключом -h выдаёт сначала кириллическую фигню, а потом читабельную латиницу:

 
$:~/Desktop/MK/Tools/linux$ ./mkl2mkp -h

mkl2mkp - ���������� MKL-䠩��� ��� ���� �����஭��� �� 
mkl2mkp [�����] MKL-䠩� [MKP-䠩�] 
	-h,-H,-?	��� ���᪠���; 
	-v,-V	������ �ணࠬ��; 
	-w,-W	��業��� (GPL2); 
	-i,-I	�뢮� ����ଠ樨. 
����஢��  CP866
mkl2mkp - EKVM Elektronika MK, compiler MKL file 
mkl2mkp [key] MKL-file [MKP-file] 
	-h,-H,-?	this help; 
	-v,-V	version; 
	-w,-W	warranty and copyright; 
	-i,-I	information view. 
Russian charset is CP866

в то время как mkp2mkl фигнёй не занимается:

 
$:~/Desktop/MK/Tools/linux$ ./mkp2mkl -h
mkp2mkl - converter MKP to MKL, TXT & HTM files 
mkp2mkl  MKPfile [key] 
mkp2mkl [-h|-v|-w] 
	-h,-H,-?	this help; 
	-v,-V	version; 
	-w,-W	warranty and copyright; 
	-e,-E	echo on (-e0 - echo off, default);

Доктор, как-то неаккуратненько (с) :)

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

/dev/ttyUSB0 ? Как в mkcfg задать последовательный порт /dev/ttyUSB0 ?

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

ttyUSB0Проще всего прописать это руками в исходнике программы обмена и перекомпилировать. :)

Конечно, в конфигурацию следует вводить всю строку, а не только номер порта. Да и от общего файла, наверное, стоит отказаться.

-wА если запустить с ключом -w, будет выведено что-то вроде:

"This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details." ;-)

А так... ну да, имеется некоторый разнобой, по понятным причинам.

Спасибо за замечание, постепенно устраним.

Дык, понятно, никто эни уарранти и не просит. Это так, перфекционизьм взыграл :)

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Неторопливо интересуюсь (+) а можно надеяться на латиницу в консолях? :)

$ mkl2mkp-0.24.i386.win32.exe -i ~/MK/Programs/map_scaler.mkl
öá⌐½ MKP  c:/Users/vsamurov/MK/Programs/map_scaler.mkl
E013 ìÑñ«»πßΓ¿¼«Ñ ¿¼∩ ¼ÑΓ¬¿  ó ßΓα«¬Ñ  11 - MSG3
ìáτá½∞¡á∩ ßΓαá¡¿µá:  0
使¡á (ßΓαá¡¿µ):  1

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Можно. Но не в ближайшие дни.

Кракозябры форева... С утилитами, ладно, можно как-то выжить, из командной строки.

Но обновить прошивку с помощью ISPMK я что-то не решусь :)
Krakozyabry

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Это под чем?

Программа ispmk использует кодировку 1251.

Но если требуется консольная программа загрузки - выложим.

Под Windows 8 Pro, с тремя языками в настройках.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/