Murmulator OS v.2.3.1
Raspberry Pi Pico 2 (RP2350)
Sources are "in-progress" state and testing now only on Murmulator devboard with VGA/HDMI output.
Simplest Murmulator schema is availabele there: https://github.com/AlexEkb4ever/MURMULATOR_classical_scheme
https://t.me/ZX_MURMULATOR_DATA
https://t.me/murmulator_news
https://t.me/ZX_MURMULATOR
https://habr.com/ru/search/?target_type=posts&order=relevance&q=[%D0%BC%D1%83%D1%80%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80]
Waveshare RP2350-PiZero pinout (all devices are optional, i2s DAC or PWM - only one may be selected at the same time):
or

Exteranl i2s PCM510x DAC tuneup example:

Option to connect VGA to HDMI:

Extract MOS2 folder to your SD-Card to /MOS2 folder.
cls - clear screen
dir / ls [dir] - show directory content. Use Ctrl+C to interrupt.
rm / del / era [file] - remove file (or empty directory)
cd [dir] - change current directory
cp [file1] [file2] - copy file1 as file2
mkdir [dir] - create directory
cat / type [file] - type file. Use Ctrl+C to interrupt.
rmdir [dir] - remove directory (recurive)
elfinfo [file] - provide .elf file info
psram - provide some psram info. Use Ctrl+C to interrupt.
swap - provide some swap info. Use Ctrl+C to interrupt.
sram - reference speed of swap base SRAM. Use Ctrl+C to interrupt.
cpu - show current CPU freq. and dividers, cpu [NNN] - change freq. to NNN MHz (it may hang on such action)
mem - show current memory state
set - show or set environment variables
mode [#] - set video-mode, for now it is supported:
- 0 - 53x30, 1 - 80x30, 2 - 100x37, 3 - 128x48, 4 - 256x256x2-bit, 5 - 512x256x1-bit, 6 - 320x240x4-bit, 7 - 320x240x8-bit, 8 - 640x480x4-bit - for VGA
- 0 - 53x30 and 1 - 80x30, 2 - 320x240x4-bit for HDMI
- 0 - 53x30 for TV (RGB)
hex [file]/[@addr] - show file or RAM as hexidecimal dump. Use Ctrl+C to interrupt.
tail [-n #] [file] - show specified (or 10) last lines from the file. Use Ctrl+C to interrupt.
usb [on/off] - start a process to mount murmulator CD-card as USB-drive (NESPAD [B] button in mc)
mc - Murmulator Commander, use [CTRL]+[O] to show console, and [CTRL]+[Enter] for fast type current file path
mcview [file] - Murmulator Commander Viewer
mcedit [file] - Murmulator Commander Editor
mv [from_file_name] [to_file_name] - move/rename the file
gmode [#] - simple graphics mode test
font [width] [height] - show/set font size for graphics modes, like `font 6 8`
blimp [n1] [n2] - simple sound test. [n1] number of cycles, [n2] OS ticks between high and low levels (1/freq.)
wav [file] - simple .wav files player (tested on 8 kHz 1-channel 16-bit files). Use Ctrl+C to interrupt.
basic [file] - tiny basic interperator implementation (by Stefan Lenz, see https://github.com/slviajero/tinybasic for more info). Use Ctrl+C to interrupt.
ps - list of "processes" (FreeRTOS tasks).
kill [n] - send SIGKILL to a "process" (FreeRTOS task), [n] - task number returned by the `ps` utility.
dhrystone [n] [kHz] - small performance test (see: https://github.com/DnCraptor/arm_benchmarks)
whetstone [n] - MIPS (whetstone) double precision performance test (see: https://github.com/DnCraptor/arm_benchmarks)
linpack [n] - Kflops single precision performance test (see: https://github.com/DnCraptor/arm_benchmarks)
[cmd] > [file] - output redirection to file
[ENTER] - start command / flash and run .uf2 file in "demo" format (NESPAD [A] button in mc)
[TAB] - autocomplete
[BACKSPACE] - remove last character
[CTRL]+[SHIFT] - rus/lat
[CTRL]+[ALT]+[DEL] - reset (NESPAD [SELECT]+[B])
[CTRL]+[TAB]+[+] - increase CPU freq.
[CTRL]+[TAB]+[-] - decrease CPU freq.
[ALT]+[0-9]+[0-9]+[0-9] - manual enter some character by its decimal code (CP-866 codepage)
[ALT]+[Enter] - try to use flasg instead of RAM to launch application (from `mc`)
# M-OS system variables BASE - base directory with commands implementations
SWAP - swap settings
COMSPEC - a path to command interpretator
PATH - list of directories to lookup for applications
GMODE - set initial graphics mode
TEMP - specify a folder with temporary files
CD - defualt path for cd command
# Boot-loader mode If uf2 application was started from M-OS, and such application is not designed for M-OS, it is possible to return to M-OS only via reboot:
Press [F10] (DPAD [START]+[SELECT]) and hold on the Murmulator reset or power-on, in this case uf2 application will be repaired you will return to last saved on Flash.
Press [F11] or [SPACE] (DPAD [SELECT]) and hold on the Murmulator reset or power-on, in this case uf2 application startup will be skip and you will return to the M-OS. And in case DPAD [B] button is also hold, it automounts SD-Cart as USB-drive.
Press [F12] or [ENTER] (DPAD [START]) and hold on the Murmulator reset or power-on, in case you want to start USB-drive mode prior starting M-OS.
Press [TAB] (DPAD [A]) and hold on the Murmulator reset or power-on, in case you want to replace default output by seconday driver.
Press DPAD [B] and hold on the Murmulator reset or power-on, in case you want to switch default output to third output.
Press [HOME] and hold on the Murmulator reset or power-on, in case you want start USB-drive mode prior starting M-OS.
Press [ESC] and hold on the Murmulator reset or power-on, to ignore .firmware and force boot to MOS.
Press and hold any other key on the Murmulator reset or power-on, to boot (skip waiting for other key-cases).
Use it to override for "M-OS system variables" or:
CPU - (MHz) to overclock or downclock the system on start. It may be useful to set some less freq. in case your board unable to support default
VREG - (enum) to overvoltage: 20 - 1.6V; 21 - 1.65V...
FLASH - (MHz) to overclock flash memory chip (default - 88)
FLASH_T - (hex uint32_t) to overclock flash memory chip (alernative way)
PSRAM - (MHz) to overclock QSPI PSRAM chip (default - 88)
PSRAM_T - (hex uint32_t) to overclock QSPI PSRAM chip (alternative way)
STACK - defualt stack size (4 KB is used by default)
Example:
CPU=352
VREG=21
FLASH=100
PSRAM=166
It forces to change CPU frequency to 352 MHz to avoid overload
N.B. Default volage for RP2350 in MOS is 1.6V, default CPU freq. 378 Mhz (252 for some builds)
Otehr example (in direct timings):
FLASH_T=60007404
PSRAM_T=605E4505

