Arvi the Hacker (Арви Хэкер) ([info]arvi) wrote in [info]mk_152,

Мордочка для самого популярного ПМК.

Многого написано про дизайн МК-152 и МК-161. Чтоже, есть повод продемонстрировать свои способности, свой вкус и разработать собственную графическую мордочку для ЭКВМ «Электроника ВК-6». Какую платформу использовать, выбирайте сами. Калькулятор ВК-6 сейчас компилируется и под ДОС, и под Windows, и под Гну-Линукс, и даже под Nokia N810! (www)

Версия ВК-6, пригодная для подключения к графическому интерфейсу, пока в разработке. Но никто не мешает разрабатывать «лицо» калькулятора параллельно, а после публикации ВК-6 v0.23 произвести первую электронную «стыковку».

Итак, вот несложный интерфейс, который будет у нового ядра ВК-6:

void ButtonPress(int c);
void ButtonRelease(int c);

— это функции, где нажатие и отпускание клавиши передаётся ядру ВК-6 от вашей мордочки. Код клавиши c соответствует приложению Б книжечки Д1, поставляемой к МК-152 и МК-161 (www).


  • Post a new comment

    Error

    Your reply will be screened

    Your IP address will be recorded 

  • 25 comments

[info]stepanishchev

March 27 2010, 16:22:34 UTC 2 years ago

Если нужно, клавиатура МК-161.
Векторный файл - http://mk.semico.ru/pict/mk161/1210122.svg
Растровый файл 300 dpi - http://mk.semico.ru/pict/mk161/1210122.png

[info]arvi

April 1 2010, 02:39:28 UTC 2 years ago

Пригодится, спасибо.

Интересна также клавиатура МК-152 в родных цветах, т.к. некоторые экраны имеют не вертикальную, а горизонтальную компоновку.

Пока нашёл лишь вот этот рисуночек, но он немного похуже качеством:
http://mk.semico.ru/pict/mk/121010d.gif

[info]stepanishchev

April 1 2010, 03:34:58 UTC 2 years ago

"Родными" для ЭКВМ цветами являются: Process Black; Orange 021; 1925, 293 и Cool Gray 1 в PANTONE MATCHING SISTEM.

Цвет 1925 - красный (для Cx), 293 - синий, остальное - из названия.

Перевод их из CMYK в RGB - дело вкуса и настроек. ;)

Файлы с клавиатурой МК-152 в векторном виде и в растре с хорошим разрешением - чуть позже.

Мордочку ВК-6 под GTK+ уже набросал, но доведу ли её в ближайшее время хотя бы до нулевого релиза - увы, не скажу.

[info]arvi

April 1 2010, 03:46:07 UTC 2 years ago

> Мордочку ВК-6 под GTK+ уже набросал,

Ух! Хотелось бы на это посмотреть. GTK+ же и под Windows успешно компилируется. Будем ждать с нетерпением. Если что нужно будет (скажем, системно-независимая отрисовка К ЭКР и F ПРГ в 1024-байтный графический буфер), пишите.

Вроде, несколько лет назад были выпущены официальные таблицы преобразования Pantone в RGB. Хотя для ЭКВМ вы у нас законодатель мод.

[info]stepanishchev

April 2 2010, 03:18:06 UTC 2 years ago

Я просто перечислил, какие цвета применяются в реальных клавиатурах. Обязательными к использованию они не являются. :)

[info]arvi

April 2 2010, 21:39:32 UTC 2 years ago

> Мордочку ВК-6 под GTK+ уже набросал, но доведу ли её
> в ближайшее время хотя бы до нулевого релиза - увы, не скажу.

Если это не была первоапрельская шутка, как продвигаются дела?

В новой версии ВК-6 я добавил отладчик, но в графической версии всю командную строку (включая отладчик) можно просто выкусить. Это модуль exec.c — потом если что, можно добавить куда более развитые средства отладки.

Если будут малейшие проблемы, пишите. Всё решим и сделаем.

[info]stepanishchev

April 3 2010, 08:52:49 UTC 2 years ago

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

[info]arvi

April 3 2010, 19:49:21 UTC 2 years ago

Это, скорее, моё обещание. Обещание помогать тем, кто разрабатывает графический интерфейс.

Ведь если для зубров командной строки и сишного исходника достаточно, то для новичков и непрограммистов (на которых ЭКВМ рассчитана) предпочтителен бинарник с привычной графической формой. Пусть даже созданный за счёт возможностей применения отладочных команд и скриптов, ведения логов и т.д.

[info]arvi

November 25 2011, 16:08:04 UTC 6 months ago

Цвета для ВК-6 в sRGB.

Про дело вкуса, согласен. Но я привёз из Калифорнии COLOR BRIDGE — не в последнюю очередь для данной цели. Ниже родные PANTONE цвета ЭКВМ даны для стандартной настройки sRBG. У вас какие цвета для печати использовались — с покрытием или без?

Process Black U это R78 G74 B71 или HTML 4E4A47 (uncoated)
Process Black C это R44 G42 B41 или HTML 2C2A29 (coated)

Orange 021 U это R255 G108 B47 или HTML FF6C2F (uncoated)
Orange 021 C это R254 G80 B0 или HTML FE5000 (coated)

1925 U это R233 G80 B110 или HTML E9506E (uncoated)
1925 C это R224 G0 B77 или HTML E0004D (coated)

293 U это R35 G91 B168 или HTML 235BA8 (uncoated)
293 C это R0 G61 B165 или HTML 003DA5 (coated)

Cool Gray 1 U это R218 G217 B214 или HTML DAD9D6 (uncoated)
Cool Gray 1 C это R217 G217 B214 или HTML D9D9D6 (coated)

В CMYK переводить пока не буду. Очевидно, они уже у вас есть. По ним можно, кстати, восстановить, ваши цвета были в гамме U или C. Если нужны переводы других цветов, обращайтесь.

[info]stepanishchev

November 25 2011, 22:54:21 UTC 6 months ago

Спасибо, пригодится.

В исходном файле цвета с покрытием (coated), но что реально было использовано при печати - кто ж его знает.

Векторные файлы клавиатур МК-152 и МК-152М, если не ошибаюсь, на сайте так и не были выложены. Сейчас векторные файлы выполнены в формате svg. Устроит это желающих использовать их как исходник для тех же накладок, к примеру? Или лучше сконвертировать во что-либо более привычное для дизайнеров?

[info]arvi

November 25 2011, 23:13:03 UTC 6 months ago

Про coated, здорово! А то я уже параллельно запрос в Pantone послал, какие значения цветов пластика использовать. :-) А что буковка P означает, вы не знаете? У каждого из coated цветов есть вариант C (я его привёл) и CP (не приводил, но у меня тоже они есть) — у вас какой? Также нужны ли точные значения CMYK для ваших цветов?

На мой взгляд, svg это идеально. Жертвовать этой возможностью не нужно, эти файлы выкладывать в любом случае. Они родные для Inkscape'а, читаются GIMP'ом, и даже Firefox'ом.

Если есть дополнительное время и место, можно добавить растровые png (высокое разрешение и качество) и jpg (низкое разрешение и маленький размер файла) для ленивых и непритязательных. Только правильный dpi там выставить, чтобы сбросив на принтер сразу получить накладку.

[info]arvi

December 6 2011, 23:21:00 UTC 5 months ago

RGB-цвета ЭКВМ, окончательно.

Пришёл ответ из Pantone. Я установил их программу и использовал рекомендованную методику. Цвета совпали с указанными выше, но на всякий случай их дублирую здесь:

Process Black C это R44 G42 B41 или HTML 2C2A29 (coated)
Orange 021 C это R254 G80 B0 или HTML FE5000 (coated)
1925 C это R224 G0 B77 или HTML E0004D (coated)
293 C это R0 G61 B165 или HTML 003DA5 (coated)
Cool Gray 1 C это R217 G217 B214 или HTML D9D9D6 (coated)

Два замечания:
1. Цвета Process Black C установленная программа PANTONE Color Manager не знает. Но поскольку все остальные цвета, подобранные мною через бумажный каталог, совпали — шанс большой, что и этот цвет получен верно.
2. Из четырёх оставшихся только Cool Gray 1 C может быть точно воспроизведён на моём мониторе, используя данное значение RGB. Остальные три цвета (Orange 021 C, 1925 C и 293 C) будут передаваться приближенно.

Впрочем, мониторы почти никто не калибрует и подобное различие практически несущественно. Данные RGB значения — на сегодняшний день лучшие приближения (их цветовой мост как минимум один раз обновлялся, с уточнениями). Если скажете названия зелёного и чёрного цвета ЖК-индикатора, могу и их поискать…

[info]stepanishchev

April 3 2010, 14:10:58 UTC 2 years ago

Замечу, что интерфейс ЭКВМ использует только ButtonPress() - если оперировать функциями ВК-6. Действие производится при нажатии, отпускание игнорируется.

Это прерывания возникают как по нажатию (R9153), так и по отпусканию кнопки (R9157). Что позволяет выполнять какую-либо операцию, например, перемещение в игре, только при нажатой кнопке. Или просто посчитать время удержания таймером.

[info]arvi

April 3 2010, 15:22:46 UTC 2 years ago

ВК-6 устроен так же и основное действие производится модулем keyboard.c именно по ButtonPress(), просто прерывания пока не реализованы.

Отпускание клавиши, кстати, ЭКВМ использует не только в прерываниях, но также в R9028 (у меня реализовано чуть-чуть по-другому, чтобы не было программных залипаний). Впрочем, наверняка смысл термина "интерфейс ЭКВМ" отличается от "графический интерфейс к ВК-6".

[info]zxalexis

October 10 2010, 14:59:32 UTC 1 year ago

GUI на freepascal/lazarus

Пишу на лазарусе.
Как нужно вызвать vp6, и что ему передавать для нажатия клавиш?
Как отобразить массив графического экрана?

[info]arvi

October 10 2010, 21:52:44 UTC 1 year ago

Re: GUI на freepascal/lazarus

О, хорошая новость! Искренне желаю успехов в этом начинании. Если будет релиз, дальнейшее развитие ВК-6 будет с учётом этого проекта.

К сожалению, я сейчас во время периода практики Дзэн. Здесь мало времени, чтобы ставить эксперименты, а мой следующий 2011 год будет ещё более далёк от цивилизации. Советую обратиться на форум freepascal.ru — это общая тема, как вызывать из Лазаруса библиотеки, написанные на Си. Люди там отзывчивые и должны помочь.

Массив графического экрана должен соответствовать структуре данных ЭКВМ. Каждый байт содержит информацию о восьми чёрно-белых (точнее серо-зелёных) точках.

Передавать ВК-6 надо код нажатой (или отжатой) клавиши, в соответствии с Руководством по Эксплуатации.

[info]zxalexis

October 11 2010, 09:28:14 UTC 1 year ago

Re: GUI на freepascal/lazarus

Пока вижу только один способ - статическая линковка с .o файлами из собранного mingw/gcc vk6. Попробую вечерком собрать их вместе =)
Для динамической подгрузки нужно исходник vk6 разделять на библиотеку и сам CLI. Тогда гуи сможет подцеплять внешнюю библиотеку.

[info]arvi

October 11 2010, 23:00:31 UTC 1 year ago

Re: GUI на freepascal/lazarus

Первый способ хороший.

Нафиг динамику. Статика рулит. Советую сначала самому написать что-либо на Си и повызывать свои функции из Лазаруса. Когда заработает, подключить настоящий ВК-6.

Anonymous

October 12 2010, 08:16:40 UTC 1 year ago

gui

Линкуется неплохо, за исключением отсутствия в стандартной MS библе С (msvcrt.dll) функции gettimeofday. Пока в os.c поставил заглушку =) (пока не придумаю замену в fpc).

[info]zxalexis

October 12 2010, 09:12:13 UTC 1 year ago

Статически линкуется, если убрать ф-цию main из vk6.c (конфликт с основной прогой), и ссылки на gettimeofday из os.c - нет такой в msvcrt.dll (это стандартная для Windows C-либа)
Буду делать замену для gettimeofday (

[info]arvi

October 12 2010, 20:21:51 UTC 1 year ago

Замена должна быть простой.

Там всего-то надо узнать, который час. Правда, как можно точнее. До долей секунд.

[info]vitasam

November 13 2011, 17:36:52 UTC 6 months ago

Где лежит самый свежий ВК-6?

Сабж.

[info]arvi

November 14 2011, 00:30:21 UTC 6 months ago

Re: Где лежит самый свежий ВК-6?

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

http://mk.semico.ru/vk6.htm
http://mk.semico.ru/prog/vk/vk6-0.30.zip

[info]stepanishchev

November 25 2011, 22:47:07 UTC 6 months ago

Да, иногда бывает полезно делать копии.

Кстати, чтобы графический интерфейс можно было выполнить без лишних заморочек - нельзя ли сделать опцию, которая весь вывод vk6, включая основной экран автоматического режима (т.е стека), могла бы направить в буфер bScreen[1024]. Тем более, нужные шрифты в программе есть.

Тогда мордочка упростится до тривиального цикла: взять код нажатой клавиши, передать его в ButtonPress(), отрисовать bScreen[].

Это, разумеется, только предложение. Обещать разработку интерфейса сейчас, увы, не могу - другие проекты идут.

[info]arvi

November 25 2011, 22:53:16 UTC 6 months ago

Добавил эту опцию в план.

Кстати, она и так в старом плане была. Просто хотелось её реализовать тогда, когда кто-то всерьёз займётся графическим интерфейсом — предполагалось, что в первых версиях граф. интерфейса вывод стека будет производится средствами ОС (printf и т.д.).
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…