«Электроника МК-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.

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

UPDATE2. Последнюю альфа-версию МК-261 XS можно скачать по коду "48KYXK33J" (без кавычек). Для этого надо иметь Нинтендо Свитч и транслятор SmileBasic 4. Код для скачивания вводится в Бейсике.

File attachments: 
Прикрепленный файлРазмер
Image icon nintendo_mk_261.jpg82.98 KB
Метки публикаций: 

Комментарии

Чем вызван выбор игровой платформы вместо того же смартфона на 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-бита), осталось добавить адресную арифметику и преобразование форматов.

Опубликована первая альфа-версия МК-261. Код для скачивания на Нинтендо Свитч, вводить внутри транслятора SmileBASIC 4:
48KYXK33J

Исходный код v0.0.1a:
http://the-hacker.ru/2020/MK-261XS-Alpha-1.pdf

Подробности в телеграмм и в Контакте:
https://vk.com/topic-10838600_46609390

https://ryujinx.org/
Разрабатывается на C#

P.S. И другой https://yuzu-emu.org/entry/yuzu-prometheus/
https://github.com/yuzu-emu/yuzu (C++)

Можно устроить эмуляционную луковицу - запустить тест "Счастливые билеты" на Форте под Каллисто, запущенном в МК-261, запущенном в эмуляторе Нинтендо Свитч, запущенном в байт-код машине C#

:D

Чтобы МК-261 работал в такой «луковице», надо, чтобы эмулятор Свитча запускал SmileBASIC 4 без ошибок. Собственно везде, где SmileBASIC 4 работает, можно без изменений запускать модель XS.

Третья (предыдущая) версия SmileBASIC (англ.) работает на 3DS. Но чтобы запустить 261XS на 3DS, придётся вносить много изменений, большинство из них в интерфейс. Другой размер графического экрана, нет USB-клавиатуры (клавиатуры придётся размещать на тачскрине), название и функциональность некоторых команд Бейсика отличаются.

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

Basic -> Андроид?

Может, сразу на Андроиде? Там сейчас все хорошо, даже, если Андроида нет, все работает в симуляторе

Под SB4 у меня полностью собрано рабочее место разработчика — и железо, и ПО, и вся найденная документация в бумажном и электронном виде. За эти десятилетия у меня собралась полноценная библиотечка по Бейсику — переводные книги и оригиналы. Есть даже успешные труды соотечественников, некоторых из которых (Кетков, Дьяконов, Брудно) уже нет в живых. При необходимости всё это богатство под рукой.

Более того, динамика развития Бейсика с 1980’ых годов до 2020’ых меня вдохновляет, положительно влияя на разрабатываемую архитектуру. Это развитие языка, идущее вровень с полувековым развитием технологий, хорошо соответствует самой задаче МК-61 → МК-161 → МК-261. Я помню, как впервые встретился с МК-61 и Бейсиком, в подростковом возрасте. Это даёт глубину понимания инструмента, помогая затачивать МК-261 под разный возраст владельца.

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

Если реализовывать уже готовую архитектуру, это, наверное, не так важно. Но в данный момент всё в процессе разработки и инструментальная среда также влияет на готовящийся продукт. Некоторые удобные вещи, ту же работу со строками в Юникоде, удаётся заимствовать из SmileBASIC 4, по крайней мере в исходный текст МК-261 XS.

> Разрабатывается на C#
Но зачем?!

Спортивный интерес :)
Типа такой цифровой археологии когда-то я поэкспериментировал:

Nokia N810 (linux) -> MS-DOS эмулятор-> Z80 эмулятор -> CP/M 2.2 -> Turbo Pascal 3.0

n810

P.S. Кто ж знает. :)

Вышла вторая альфа-версия «Электроники МК-261» для Нинтендо Свитч.
Код для скачивания не изменился (требуется SmileBASIC4):
48KYXK33J

Новости:

1. Регистр f переместился на клавишу ↔

Это вызвано тем, что в режиме X помимо ввода шестнадцатиричных цифр понадобятся все четыре арифметических действия. Надписи от a до f теперь строго справа от кнопок.

2. В исходниках явно прописано, что программа свободная и это защищено с помощью лицензии GNU GPL v3.

3. Последовательная терминология в комментариях и несколько других мелких изменений.

Вышла третья альфа-версия МК-261 XS.
Напоминаю код для скачивания:
48KYXK33J

Добавлена графика первого символа "⟳" (он выглядит немного иначе), как в команде F⟳

Шрифты 8×8 и 16×16 пока так себе. Но теперь их можно изменять и улучшать, просто поправив числа в операторе DATA

Изображение кодируется примерно, как на МК-161: «по столбцам сверху-вниз слева-направо». Сверху-вниз, правда, здесь излишне — изображения 8×8 кодируются побайтно, а 16×16 целыми по 16 бит на столбец.

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

Опубликована 4-я альфа-версия МК-261 XS. Код для скачивания тот же:
48KYXK33J

Добавлено пять литер ПМК, отсутствующих в SB4:

  • Литеры "≠" и "≥", как в условных переходах Fx≠0 и Fx≥0 (взяты у МК-161)
  • Литеры "∧", "∨" и "⊕", как в логических операциях K∧, K∨ и K⊕ (взяты у МК-61)

Над глифами можно ещё поработать в сторону шрифтового стиля Нинтендо Свитч. Их рисунок в операторах DATA, которые в конце файла MKSKIN.PRG