Операционная система для Мурмулятора
Автор порта Mike V73
Страничка проекта на гитхабе
Скачать murmulator-os-0.3.3 у нас или с Яндекс.Диска
Более ранние версии можно скачать у нас
Основная задача любой операционной системы - предоставить приложениям возможность унифицированного способа доступа к ресурсам оборудования, а пользователю - запускать и останавливать работающие приложения.
Официальный источник обновлений для МОС - сайт https://github.com/DnCraptor/murmulator-os/releases. Скачивайте оттуда архив (например murmulator-os-0.3.0-VGA-HDMI-RGB.zip) и выбирайте подходящую вашему оборудованию прошивку (.uf2 файл). Порядок следования видеодрайверов имеет значение. Если основной вывод для вас VGA, используйте прошивку, которая начинается именно с этой аббревиатуры. Если у вас на плате Мурмулятора имеется звуковой чип (DAC), подключенный по i2s, используйте прошивку, в имени которой имеется данная подстрока, например, murmulator-os-0.3.0-i2s-HDMI-VGA-RGB.uf2 - обозначает, что звук выводится через i2s (поддерживаются TDA1387T и PCM5102A DAC), а изображение по-умолчанию - в HDMI.
Если вы уже обзавелись Мурмулятором, то должны себе представлять, как происходит его прошивка - подключить по USB к компьютеру, в появившийся диск (обычно имеет метку тома RPI-RP2) скинуть .uf2 файл прошивки и… всё. Микрокомпьютер запустит установленную прошивку. Для MOS необходим дополнительный шаг - обеспечить операционную систему рабочими утилитами, а в частности - командным процессором. Для этого из скачанного архива скопируйте папку MOS в корень вашей SD-карты. Если вы обновляете прошивку, не забывайте обновлять утилиты, которые идут в комплекте. SD-карта должна быть отформатирована, как FAT, с размером кластера 4 КБ.
МОС без SD-карты запускается в специальном режиме - режиме тестирования оборудования. Основная задача данного режима - проверить, что сигналы от клавиатуры и/или джойстиков доходят то микроконтроллера. Также она отображает информацию о частоте CPU и количестве памяти разных типов, доступных ОС.
Если вы всё сделали правильно, то запустится командный процессор по-умолчанию, который прописан в config.sys (файл может располагаться в корне или в папке /mos), как значение переменной COMSPEC. В дистрибутиве это значение установлено в /mos/mc, т.е. по-умолчанию запустится Murmulator Commander (не путать с Midnight Commander).
Работа с mc мало отличается от работы с любым другим файловым менеджером. Кнопкой TAB (SELECT с джойстика) можно перемещаться между панелями, ну а кнопкой ENTER (‘A’ джойстика), как обычно, заходим внутрь каталогов, или запускаем программы.
Также можно использовать mc, и как командный процессор - просто вводить команды с клавиатуры. Для режима командного процессора имеется более удобное представление, переключиться в которое можно с клавиатуры комбинацией кнопок Ctrl+O.
МОС нативно поддерживает русский язык для ввода, вывода и хранения данных. Для хранения используется кодовая таблица IBM CP866 (совместимо с IBM и MS DOS), т.е. файлы, подготовленные в Windows и сохранённые в UTF или Windows-1251, будут отображаться неверно (требуют предварительной перекодировки). Для переключения режимов ввода используйте нажатие Ctrl+Shift.
Самое частое использование Мурмулятора - запуск эмуляторов различных ретро-компьютеров. И поскольку МОС - прямой наследник бут-лоадера (см. https://github.com/xrip/pico-launcher), который предназначен для запуска этих эмуляторов, МОС поддерживает всю ту же функциональность. Запуск .uf2 приложений кнопкой ENTER клавиатуры или кнопкой ‘A’ джойстика на выделенном файле.
В процессе прошивки .uf2 все прерывания ОС отключаются (особенность работы данного микроконтроллера), т.е. в это время отключается и драйвер дисплея. За процессом можно наблюдать только по морганию светодиода на плате. В момент окончания прошивки светодиод гаснет, и предполагается перезагрузка микрокомпьютера. Если перезагрузка не происходит автоматически, выводится соответствующее сообщение, что необходимо перезагрузить его вручную. После перезагрузки ожидается запуск соответствующего эмулятора (например, pico-bk).
Для того, чтобы вернуться в режим МОС, требуется нажать и удерживать пробел, F11, или кнопку SELECT джойстика, во время подачи питания, или перезагрузки микрокомпьютера.
Если необходимо провести запись какой-то прошивки “штатными” средствами, требуется нажать и удерживать ENTER, F12, или кнопку START джойстика, во время подачи питания, или перезагрузки микрокомпьютера. Именно таким способом необходимо обновлять МОС.
Если необходимо включить вторичный драйвер дисплея, держать нажатой кнопку TAB клавиатуры, или кнопку А на джойстике, в момент подачи питания или перезагрузки. Для переключения на третью - держать кнопку B на джойстике, соответственно.
Когда запущен mc, доступен режим связи МОС с внешним компьютером для передачи файлов. Для запуска этого режима, нажмите Alt+F10 или SELECT+B. На компьютере появится дополнительный USB-drive, который является отражением SD-карты Мурмулятора. Карта доступна и на запись, и на чтение. Корректное закрытие данного режима - нажать “Извлечь диск” на стороне компьютера. Экстренный разрыв связи возможен и со стороны mc, повторным нажатием Alt+F10. Из командной строки то же самое доступно по командам usb on / usb off
Иногда требуется включить режим передачи файлов ещё до загрузки ОС. Нажмите и удерживайте кнопку HOME клавиатуры, или SELECT+B джойстика. Выйти из данного режима можно только при помощи перезагрузки.
Главным отличием МОС от бут-лоадера является возможность запуска штатных МОС-приложений, не полноценных .uf2-прошивок, а специально разработанных под МОС программ. В частности, из комплекта mc имеется mceditor, которым удобно редактировать файлы конфигурации. Для обучения и развлечения доступен интерпретатор Бейсика - штатная программа basic, а для проигрывания музыки в PCM-формате - программа wav.
Основной набор утилит можно описать кратко:
Поддерживаемые видеорежимы:
VGA:
HDMI:
TV (RGB):
Также поддерживаются операции перенаправления стандартного вывода, например:
mem > mem.info - создаст файл mem.info и запишет туда весь вывод команды mem кроме сообщений об ошибках (перенаправления типа mem 2> mem.err пока не поддерживаются), а команда
sram >> mem.info - добавит в существующий файл ещё и результат выполнения команды sram.
Для запуска программы в скрытом режиме используйте символ & - detach (отсоединение) с перенаправлением вывода. Например:
wav /music/8t-sonata.wav 50000 > waw.log & - вывод команды будет перенаправлен в файл, сама команда будет выполняться в фоновом режиме, при этом зарезервировав 50000 байт под другие приложения.
Прямой и обратный слеш для МОС равнозначны, т.е. Можно писать cd / и cd \, и будет выполнена одинаковая операция.
Большие и маленькие буквы в именах файлов - равнозначны.
Если есть необходимость использовать спецсимволы (например, пробел) в именах файлов, используйте двойные кавычки: cd “/my folder”
В режиме командного процессора поддерживается автодополнение по кнопке TAB и навигация стрелками вверх/вниз по истории выполненных команд.
Также доступен режим ввода спецсимволов по их коду, удерживая ALT, например ALT 4 8 0 - ° - символ градуса.
M-OS system variables
Системные переменные можно установить в файле /mos/config.sys: