«Электроника МК-261», анонс модели XS

В Контакте анонсировано начало разработки МК-261 XS. Это ПМК на Нинтендо Свитч, поверх которого будет написана следующая версия Каллисто.
нажмите, чтобы увеличить

Уже работают нажатия на клавиши (пальцем и джойстиком), отображение стека на индикаторе и ряд простых команд ПМК. Отлаживается десятичный ввод числа в RX, совместимый с МК-161. Альфа-версию надеюсь опубликовать до конца года. MK-261 XS пишется на Смайл Бейсике. Любой владелец Нинтендо Свитч и Бейсика сможет бесплатно скачать «Электронику МК-261» XS из облака после публикации, с исходным текстом.

Что добавить к анонсу? Модель XS пишется не ради ещё одного калькулятора на Свитче. Это способ отладить и оптимизировать как архитектуру будущего ПМК, так и написать кросс-платформенную версию Каллисто-2 поверх неё. Причём трудиться над этим проектом можно уже сейчас, до разработки специализированного железа под «Электронику МК-261».

Удивительно, но из-за X-команд (появятся впервые в МК-261) Каллисто-2 будет ближе к Каллисто Классик, чем ожидалось. Многие ухищрения, придуманные для 161eForth, окажутся не нужны. Часть черновиков Каллисто-2 будет использована на МК-261, например целевой ассемблер ПМК — для разработки кода ПМК средствами Каллисто-2. Словарь будет классическим связным списком в памяти данных (имена проверяются полностью, без хэша), обработчики слов реализованы подпрограммами (ПП…В/О) в памяти программ. С помощью давно придуманного трюка будет реализован долгожданный CREATE…DOES>. В памяти программ будет использован быстрый подпрограммный код, из-за Гарварда он генерируется лишь при кросс-компиляции. В памяти данных, для простых смертных — косвенный шитый, как в Каллисто 1.0.

Метки публикаций: 

Комментарии

Чем вызван выбор игровой платформы вместо того же смартфона на iOS?

Совокупностью факторов. Главный из которых — Smile Basic. Вспоминая Бейсик MSX и изучая, как он развился в Японии за 30+ лет, получаешь вдохновение обновлять и развивать советскую архитектуру примерно такой же давности. Я надеюсь много почерпнуть оттуда. Да и для многих из нас ПМК сам — игровая платформа, пусть и с особенностями.

Конкретно на iOS есть отечественный SmartBASIC, на который перенести МК-261X сравнительно несложно. Но обычная разработка на Xcode под iOS требует $100 в год и наличие Мака, что мало у кого в России. Больше народу смогло бы использовать МК-261, но меньше помогать в разработке. Цель же сейчас не распространение, а разработка системы под будущее железо.

Свитч распространён. Он выпускается громадным тиражом, поэтому сравнительно мощная железка стоит недорого. Дешевле смартфона. Сам Бейсик прост, поэтому к проекту может присоединиться максимальное число народа. Девелоперская система также максимально простая. Свитч, клавиатура и телевизор. МК-261XS запускается и работает на той же железке, на которой разрабатывается.

Свитч же распространён. Он выпускается громадным тиражом, поэтому сравнительно мощная железка стоит недорого.

23 тыс. рублей, недорого?

Что добавить к анонсу? Модель XS пишется не ради ещё одного калькулятора на Свитче. Это способ отладить и оптимизировать как архитектуру будущего ПМК, так и написать кросс-платформенную версию Каллисто-2 поверх неё. Причём трудиться над этим проектом можно уже сейчас, до разработки специализированного железа под «Электронику МК-261».

Если цель - отладить и оптимизировать архитектуру будущего ПМК, почему бы не взять что-то точно доступное всем и кросс-платформенное? Типа Python3 + Tkinter (GUI фреймворк из стандартной поставки Питона). Работало бы даже на Распберри Пи с копеечным тач-экраном.

P.S. А мне приехали "черные таблетки" stm32F411 за 200 рублей :D
Пересадка в MK52S прошла успешно, начинаю рисовать финальную схему печатной платы.

Насчёт цены. По той же ссылке есть новенькая лайт версия за 16500. Если цель сэкономить, на ней Смайл Бейсик и МК-261 пойдут. Конечно, придётся отказаться от роскоши подключения к ТВ. Да и USB-клавиатура не факт, что подключится — в Бейсике есть экранная клавиатура. С рук подержанный Свитч ещё дешевле выйдет. К тому же он не только для данного проекта пригоден. :-)

Смайл Бейсик выбран, конечно, не из-за финансовой выгоды. Он решает ту же задачу, как Каллисто — удобный входной язык для широкого круга людей. В конечном итоге его и Свитч отбросим, как отгоревшую своё ступень. Но влияние Смайл Бейсика полезно. Например, именно он дал мне идею хранить в стеке и регистрах R0…RE…R999 не только десятичные числа, но и строки. И подсказал реализацию.

В целом это расширяет идею «видеосообщений» из 90’ых. Но полезно и для других целей, в том числе для написания компилятора. Позже всю систему (без Бейсика) засунем в какой-либо Ардуино или малинку (можно и ваши «таблетки» использовать), а потом реализуем на отечественных комплектующих (третий этап). Свитч позволил начать разработку задолго до готовности железа.

Если есть виндопланшет (типа моего древнего, доросшего от Винды 8.0 до последней Десятки), то еМкатик дает 100% "погружение в реальность" - нажимаю кнопки пальцем, как на настоящем.

Жалко, что еМкатик не работает в полном окне, было бы аутентично и размеру настоящего МК152 :)

eMkatic on Acer

Для сохранения традиции не хватает коробка спичек на фото :-)

Не догадался, угу. Надо переделать фото, разместив рядом МК61 и коробок спичек.

Фото обновлено до соответствия канонам

eMKatic вполне реально доработать до МК-261Х и запускать Каллисто-2 на планшетах, когда архитектура МК-261 стабилизируется. Там же открытые исходники?

Понадобится расширить памяти программ и данных, добавить их второй «целевой» экземпляр и X-команды. В результате будет даже лучшая совместимость по регистрам функций с МК-161, чем на Свитче. В XS я реализую только те функции, которые нужны для полноценной работы Каллисто-2.
Схема МК-261

Lazarus - отличная среда для небольших или любительских проектов, я его для этой цели успешно использовал в FBProfiler (профайлер для СУБД Firebird). Но как только масштаб растет, карета превращается в тыкву. Точнее, в кактус: Кактус, или как перестать грызть Lazarus

Проникся «сказкой», спасибо. К счастью, ПМКшные проекты на порядок меньше лимита в 100К строк и слабо зависят от сторонних компонент.

Каллисто Классик меньше 5К строк, включая редактор и примеры. Вся МК-261XS, даже с Каллисто-2, вполне может уложиться в 10К строк. Из них 973 уже написаны. С учётом сказанного в статье, вполне можно делать МК-261X на Лазарусе и даже получить бонусом версию ПМК под айфон.

тоже похоже есть
https://wiki.lazarus.freepascal.org/Android/ru

"8-ми" летней давности
func titan-01
Но, на нём, Андроид 4.0.3 :)

https://club.dns-shop.ru/review/t-65-igrovyie-konsoli/4141-func-titan-01/

P.S. Какие то программы под версией Android 4.0 уже не работают, а сами производители не предоставляют обновление своих устройств.
Но, вроде, на такой версии есть возможность запустить gForth систему (проверял когда то на близкой версии Андроида на другом девайсе)

Видеоканал по SmileBasic разработчика https://www.youtube.com/user/SmileBoooom/videos
Могут, наверное, и появится его открытые реализации для разного железа.

gForth и СПФ — отличные инструменты. Они рассчитаны на профессионалов. Каллисто, как и вся тема ПМК, рассчитаны на примерно ту же аудиторию, как японский Смайл Бейсик. Это помогает совершенствовать концепцию МК-261, которая сейчас в активной разработке. Более того, СмайлБейсик прошёл эволюцию на карманных консолях Нинтендо — это практически их МК-85.

Да, по ссылке официальный канал SB4. У них ещё есть пара веб-сайтов и форум пользователей.

Про консоль — это второй эшелон, как и андроид в целом. Смотрят на Свитч и iOS, делают «примерно такой же девайс» с дешёвыми бонусами. Можно становиться к ним в третий эшелон, конечно. Но это сильно на любителя. :-)

Switch вышел на 5-ть лет позже, но с возможностью отцепить от него джойстики,
а для Android уже тогда вариант такой консоли был проработан.
История Андроид, кстати, начинается с альянса его разработки где-то созданного в районе 2005года.
(а, тогда, ещё были сильны позиции WM от Microsoft)
Всё, таки, отвязав спецификацию Виртуальной машины Андроид от реального железа он добился доминирования на рынке мобильных девайсов.

P.S. Интересно, а на уровне низкоуровневого доступа к командам CPU Switch имеется возможность?
Тот же gForh, вроде, позволяет просмотреть ассемблернвый код Форт-примитивных Arm команд его.

Тот же 4pda начинается с отображения тематики Андроид, а не iOS https://4pda.ru/forum/index.php?act=idx
и, это как минимум, народное признание. :)

Насколько я знаю, Нинтендо любит поставлять средства низкоуровневого программирования для своих консолей под NDA. При этом всегда находится команда взломщиков, предоставляющая низкоуровневый доступ в обход закона.

Смайл Бейсик — удачный способ легально поюзать хорошее современное железо для своих целей перед тем, как начать паять своё. Более того, прототип МК-261 будет доступен аудитории несколько большей, чем пара владельцев самобытной железки. Кстати, по ссылке в Контакте я опубликовал трёхуровневую схему «Электроники МК-261».

https://github.com/freebasic/fbc
есть и игры сделаннo на FreeBasic

https://ru.wikipedia.org/wiki/FreeBASIC

Увы, не исследовал. Смайл Бейсик заточен на консоли Нинтендо, пережив три поколения минимум. Выбран он мной, в том числе, из-за форм фактора — Свитч по габаритам чуть больше ПМК, что создаёт «look and feel» макета ПМК. Самое оно после разработки Каллисто на аскетичном МК-161. Возможности Смайл Бейсика необъятны. На Свитче любую часть архитектуры МК-261 можно просто для эксперимента как урезать, так и увеличить в тысячи раз. Сомневаюсь, что FreeBasic может обеспечить такую же стабильную и дружелюбную среду. Но не проверял.

Каллисто-2 я не хочу ограничивать Смайл Бейсиком. Когда будет отлажена архитектура МК-261, её надо будет перенести на отечественное железо. Кто-нибудь может попробовать перевести 261XS со Смайл Бейсика на FreeBasic, но практического смысла в этом нет. Со Смайл Бейсика мы и так, и так уйдём, как только будет разработано родное железо для МК-261.

Перспективней, наверное, перевести 261XS на отечественный Смарт Бейсик — чтобы в разработке МК-261 смогли участвовать владельцы айфонов:
http://www.kibernetik.pro/forum/viewforum.php?f=2

Но и этим я заниматься не буду. Для меня Свитч — хорошая инструментальная система первого этапа, выбранная мною лично из многих. На Свитче много своих проблем (двоичная плавучка, сложности в экспорте исходного текста, нельзя GOTO за пределы функций), но их я уже научился решать.

Создал телеграмм-канал для разработки МК-261. Там же можно обсуждать МК-61S, МК-161 и другие отечественные ПМК. Добро пожаловать:
https://t.me/MK261XS

Что сделано с начала ноября:

  • устранена ошибка отображения десятичных чисел в стеке
  • реализованы обработка и отображение ошибок ERROR с кратким пояснением в строке статуса (стиль ЭКВМ)
  • чуть дальше продвинулась совместимая реализация ввода десятичного числа с клавиатуры: команды 0-9, ВП, /-/, запятая
  • заработали четыре арифметических действия, сейчас продумывается реализация переполнения и машинного нуля
  • реализованы две команды аварийного останова: K- и К ÷

Калькулятор готовится к публикации альфа-версии, которая назначена на декабрь 2020. Продумываются варианты сохранения совместимости при переходе памяти программ и данных на 4-х значную шестнадцатеричную адресацию. Целевое пространство можно будет переключать на десятичную адресацию при компиляции программ (MKP, а также MKD, MKB и MKT) для последующего исполнения на ЭКВМ или советских ПМК.

Я все-таки не могу понять причины выбора платформы разработки, которая дорогая и ее готовы купить 0.000012 человека.
1) Компактность и батарейное питание?
2) Тач экран, на котором можно сделать интерфейс ПМК?
3) Что-то еще?

По первым двум пунктам вполне проходит условно бесплатное решение, которое точно есть у 99% целевой аудитории - смартфон.

И имя этому - Py3. Запускать и разрабатывать можно хоть где, на той же Raspberry, или на самом смартфоне:
Py3_1Py3_2Py3_3

А если не нравится Python, то есть тяжелая артиллерия, C++:
C++

Платформа МК-261 (конечного продукта) будет отечественная, с независимостью от зарубежных экосистем.

Платформа первого этапа разработки — та, которая сейчас есть под рукой разработчика. Свитч с Бейсиком у меня под рукой, андроида в ближайшем окружении нет и не предвидится.

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

Когда архитектура МК-261 стабилизируется, Каллисто-2 (основную часть разработки) можно будет разрабатывать и запускать везде, где сэмулируют несложное железо МК-261 — хоть на FreeBasic’е, хоть на Лазарусе, хоть на Питоне или C++. Сам факт, что у меня Свитч, станет незначительной низкоуровневой деталью.

Первое видео с МК-261 посвящено работе в режиме F АВТ. Также анонсировано первое «чудовище» нового поколения — гекс. Интеграция гекса в архитектуру ПМК почти завершена: уже реализованы косвенная адресация (больших адресных пространств, нужных для метакомпиляции «на борту») и побитовая логика (32-бита), осталось добавить адресную арифметику и преобразование форматов.