«Электроника МК-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.
Прикрепленный файл | Размер |
---|---|
![]() | 82.98 KB |
- AtH's blog
- Log in or register to post comments
- 1810 просмотров
Комментарии
Чем вызван
Permalink
Чем вызван выбор игровой платформы вместо того же смартфона на iOS?
Smile Basic
Permalink
Совокупностью факторов. Главный из которых — Smile Basic. Вспоминая Бейсик MSX и изучая, как он развился в Японии за 30+ лет, получаешь вдохновение обновлять и развивать советскую архитектуру примерно такой же давности. Я надеюсь много почерпнуть оттуда. Да и для многих из нас ПМК сам — игровая платформа, пусть и с особенностями.
Конкретно на iOS есть отечественный SmartBASIC, на который перенести МК-261X сравнительно несложно. Но обычная разработка на Xcode под iOS требует $100 в год и наличие Мака, что мало у кого в России. Больше народу смогло бы использовать МК-261, но меньше помогать в разработке. Цель же сейчас не распространение, а разработка системы под будущее железо.
Свитч распространён. Он выпускается громадным тиражом, поэтому сравнительно мощная железка стоит недорого. Дешевле смартфона. Сам Бейсик прост, поэтому к проекту может присоединиться максимальное число народа. Девелоперская система также максимально простая. Свитч, клавиатура и телевизор. МК-261XS запускается и работает на той же железке, на которой разрабатывается.
Нинтендо Свитч
Permalink
23 тыс. рублей, недорого?
Если цель - отладить и оптимизировать архитектуру будущего ПМК, почему бы не взять что-то точно доступное всем и кросс-платформенное? Типа Python3 + Tkinter (GUI фреймворк из стандартной поставки Питона). Работало бы даже на Распберри Пи с копеечным тач-экраном.
P.S. А мне приехали "черные таблетки" stm32F411 за 200 рублей :D
Пересадка в MK52S прошла успешно, начинаю рисовать финальную схему печатной платы.
Свитч лайт
Permalink
Насчёт цены. По той же ссылке есть новенькая лайт версия за 16500. Если цель сэкономить, на ней Смайл Бейсик и МК-261 пойдут. Конечно, придётся отказаться от роскоши подключения к ТВ. Да и USB-клавиатура не факт, что подключится — в Бейсике есть экранная клавиатура. С рук подержанный Свитч ещё дешевле выйдет. К тому же он не только для данного проекта пригоден. :-)
Смайл Бейсик выбран, конечно, не из-за финансовой выгоды. Он решает ту же задачу, как Каллисто — удобный входной язык для широкого круга людей. В конечном итоге его и Свитч отбросим, как отгоревшую своё ступень. Но влияние Смайл Бейсика полезно. Например, именно он дал мне идею хранить в стеке и регистрах R0…RE…R999 не только десятичные числа, но и строки. И подсказал реализацию.
В целом это расширяет идею «видеосообщений» из 90’ых. Но полезно и для других целей, в том числе для написания компилятора. Позже всю систему (без Бейсика) засунем в какой-либо Ардуино или малинку (можно и ваши «таблетки» использовать), а потом реализуем на отечественных комплектующих (третий этап). Свитч позволил начать разработку задолго до готовности железа.
Виндопланшет
Permalink
Если есть виндопланшет (типа моего древнего, доросшего от Винды 8.0 до последней Десятки), то еМкатик дает 100% "погружение в реальность" - нажимаю кнопки пальцем, как на настоящем.
Жалко, что еМкатик не работает в полном окне, было бы аутентично и размеру настоящего МК152 :)
Для поддержания традиции не
Permalink
Для сохранения традиции не хватает коробка спичек на фото :-)
Да, не догадался!
Permalink
Не догадался, угу. Надо переделать фото, разместив рядом МК61 и коробок спичек.
Канон
Permalink
Фото обновлено до соответствия канонам
MK-261 over eMKatic
Permalink
eMKatic вполне реально доработать до МК-261Х и запускать Каллисто-2 на планшетах, когда архитектура МК-261 стабилизируется. Там же открытые исходники?
Понадобится расширить памяти программ и данных, добавить их второй «целевой» экземпляр и X-команды. В результате будет даже лучшая совместимость по регистрам функций с МК-161, чем на Свитче. В XS я реализую только те функции, которые нужны для полноценной работы Каллисто-2.

Да, опенсорс
Permalink
На чем-то Паскалеподобном, вроде, Лазарус.
Lazarus
Permalink
Lazarus - отличная среда для небольших или любительских проектов, я его для этой цели успешно использовал в FBProfiler (профайлер для СУБД Firebird). Но как только масштаб растет, карета превращается в тыкву. Точнее, в кактус: Кактус, или как перестать грызть Lazarus
Впечатляет
Permalink
Проникся «сказкой», спасибо. К счастью, ПМКшные проекты на порядок меньше лимита в 100К строк и слабо зависят от сторонних компонент.
Каллисто Классик меньше 5К строк, включая редактор и примеры. Вся МК-261XS, даже с Каллисто-2, вполне может уложиться в 10К строк. Из них 973 уже написаны. С учётом сказанного в статье, вполне можно делать МК-261X на Лазарусе и даже получить бонусом версию ПМК под айфон.
Lazarus для Android
Permalink
тоже похоже есть
https://wiki.lazarus.freepascal.org/Android/ru
У меня примерно "такой" же девайс есть func titan-01
Permalink
"8-ми" летней давности

Но, на нём, Андроид 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, андроид и пародии на Свитч
Permalink
gForth и СПФ — отличные инструменты. Они рассчитаны на профессионалов. Каллисто, как и вся тема ПМК, рассчитаны на примерно ту же аудиторию, как японский Смайл Бейсик. Это помогает совершенствовать концепцию МК-261, которая сейчас в активной разработке. Более того, СмайлБейсик прошёл эволюцию на карманных консолях Нинтендо — это практически их МК-85.
Да, по ссылке официальный канал SB4. У них ещё есть пара веб-сайтов и форум пользователей.
Про консоль — это второй эшелон, как и андроид в целом. Смотрят на Свитч и iOS, делают «примерно такой же девайс» с дешёвыми бонусами. Можно становиться к ним в третий эшелон, конечно. Но это сильно на любителя. :-)
Никакой пародии этого девайса в отношении Switch :)
Permalink
Switch вышел на 5-ть лет позже, но с возможностью отцепить от него джойстики,
а для Android уже тогда вариант такой консоли был проработан.
История Андроид, кстати, начинается с альянса его разработки где-то созданного в районе 2005года.
(а, тогда, ещё были сильны позиции WM от Microsoft)
Всё, таки, отвязав спецификацию Виртуальной машины Андроид от реального железа он добился доминирования на рынке мобильных девайсов.
P.S. Интересно, а на уровне низкоуровневого доступа к командам CPU Switch имеется возможность?
Тот же gForh, вроде, позволяет просмотреть ассемблернвый код Форт-примитивных Arm команд его.
Тот же 4pda начинается с отображения тематики Андроид, а не iOS https://4pda.ru/forum/index.php?act=idx
и, это как минимум, народное признание. :)
Низкоуровневый Свитч
Permalink
Насколько я знаю, Нинтендо любит поставлять средства низкоуровневого программирования для своих консолей под NDA. При этом всегда находится команда взломщиков, предоставляющая низкоуровневый доступ в обход закона.
Смайл Бейсик — удачный способ легально поюзать хорошее современное железо для своих целей перед тем, как начать паять своё. Более того, прототип МК-261 будет доступен аудитории несколько большей, чем пара владельцев самобытной железки. Кстати, по ссылке в Контакте я опубликовал трёхуровневую схему «Электроники МК-261».
Отличия Smile Basic и FreeBasic существены?
Permalink
https://github.com/freebasic/fbc
есть и игры сделаннo на FreeBasic
https://ru.wikipedia.org/wiki/FreeBASIC
Диалекты Бейсика
Permalink
Увы, не исследовал. Смайл Бейсик заточен на консоли Нинтендо, пережив три поколения минимум. Выбран он мной, в том числе, из-за форм фактора — Свитч по габаритам чуть больше ПМК, что создаёт «look and feel» макета ПМК. Самое оно после разработки Каллисто на аскетичном МК-161. Возможности Смайл Бейсика необъятны. На Свитче любую часть архитектуры МК-261 можно просто для эксперимента как урезать, так и увеличить в тысячи раз. Сомневаюсь, что FreeBasic может обеспечить такую же стабильную и дружелюбную среду. Но не проверял.
Каллисто-2 я не хочу ограничивать Смайл Бейсиком. Когда будет отлажена архитектура МК-261, её надо будет перенести на отечественное железо. Кто-нибудь может попробовать перевести 261XS со Смайл Бейсика на FreeBasic, но практического смысла в этом нет. Со Смайл Бейсика мы и так, и так уйдём, как только будет разработано родное железо для МК-261.
Перспективней, наверное, перевести 261XS на отечественный Смарт Бейсик — чтобы в разработке МК-261 смогли участвовать владельцы айфонов:
http://www.kibernetik.pro/forum/viewforum.php?f=2
Но и этим я заниматься не буду. Для меня Свитч — хорошая инструментальная система первого этапа, выбранная мною лично из многих. На Свитче много своих проблем (двоичная плавучка, сложности в экспорте исходного текста, нельзя GOTO за пределы функций), но их я уже научился решать.
Телеграмм-канал
Permalink
Создал телеграмм-канал для разработки МК-261. Там же можно обсуждать МК-61S, МК-161 и другие отечественные ПМК. Добро пожаловать:
https://t.me/MK261XS
MK-261 XS за отчётный период
Permalink
Что сделано с начала ноября:
Калькулятор готовится к публикации альфа-версии, которая назначена на декабрь 2020. Продумываются варианты сохранения совместимости при переходе памяти программ и данных на 4-х значную шестнадцатеричную адресацию. Целевое пространство можно будет переключать на десятичную адресацию при компиляции программ (MKP, а также MKD, MKB и MKT) для последующего исполнения на ЭКВМ или советских ПМК.
Выбор платформы разработки
Permalink
Я все-таки не могу понять причины выбора платформы разработки, которая дорогая и ее готовы купить 0.000012 человека.
1) Компактность и батарейное питание?
2) Тач экран, на котором можно сделать интерфейс ПМК?
3) Что-то еще?
По первым двум пунктам вполне проходит условно бесплатное решение, которое точно есть у 99% целевой аудитории - смартфон.
И имя этому - Py3. Запускать и разрабатывать можно хоть где, на той же Raspberry, или на самом смартфоне:



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

Платформа разработчика
Permalink
Платформа МК-261 (конечного продукта) будет отечественная, с независимостью от зарубежных экосистем.
Платформа первого этапа разработки — та, которая сейчас есть под рукой разработчика. Свитч с Бейсиком у меня под рукой, андроида в ближайшем окружении нет и не предвидится.
Можно помочь в переходе на второй этап, спроектировав железо из дешёвой и доступной комплектухи. Но лучше это сделать чуть позже, когда на избыточно мощном Свитче станут очевидней требования МК-261 по памяти, быстродействию и т.п. Скорее всего это будет малинка, так как подключение к ТВ и внешней клавиатуре — очень хорошая штука для платформы, которая развивается в сторону универсального кросс-компилятора для ПМК и других небольших устройств.
Когда архитектура МК-261 стабилизируется, Каллисто-2 (основную часть разработки) можно будет разрабатывать и запускать везде, где сэмулируют несложное железо МК-261 — хоть на FreeBasic’е, хоть на Лазарусе, хоть на Питоне или C++. Сам факт, что у меня Свитч, станет незначительной низкоуровневой деталью.
МК-261: автоматический режим, гексы
Permalink
Первое видео с МК-261 посвящено работе в режиме F АВТ. Также анонсировано первое «чудовище» нового поколения — гекс. Интеграция гекса в архитектуру ПМК почти завершена: уже реализованы косвенная адресация (больших адресных пространств, нужных для метакомпиляции «на борту») и побитовая логика (32-бита), осталось добавить адресную арифметику и преобразование форматов.
МК-261 XS v0.0.1a
Permalink
Опубликована первая альфа-версия МК-261. Код для скачивания на Нинтендо Свитч, вводить внутри транслятора SmileBASIC 4:
48KYXK33J
Исходный код v0.0.1a:
http://the-hacker.ru/2020/MK-261XS-Alpha-1.pdf
Подробности в телеграмм и в Контакте:
https://vk.com/topic-10838600_46609390
A simple, experimental Nintendo Switch emulator. :)
Permalink
https://ryujinx.org/
Разрабатывается на C#
P.S. И другой https://yuzu-emu.org/entry/yuzu-prometheus/
https://github.com/yuzu-emu/yuzu (C++)
Эмуляционная луковица
Permalink
Можно устроить эмуляционную луковицу - запустить тест "Счастливые билеты" на Форте под Каллисто, запущенном в МК-261, запущенном в эмуляторе Нинтендо Свитч, запущенном в байт-код машине C#
:D
"Но, Холмс" (с)
Permalink
> Разрабатывается на C#
Но зачем?!
Спортивный интерес (с)
Permalink
Спортивный интерес :)
Типа такой цифровой археологии когда-то я поэкспериментировал:
Зачем на С#, или зачем разрабатывается?
Permalink
P.S. Кто ж знает. :)