MTOS in the browser — tn20k kernel on a JS RV32IM emulator

no card
no kernel · · - MIPS · 0 insns
LCD (ILI9488 320x480) — tap it and type: matrix keyboard, lowercase only

The default kernel runs /bin/console -l -v (landscape, VRAM engine) on the LCD and a second sh on the UART terminal: type at the sh$ prompt on the left (Enter sends CR), or click the LCD and type there. The other console kernels (make -C kernel tn20k-console etc.) do the same; tn20k_kernel.bin and tn20k_kernel_extra.bin have only the UART shell. Matrix keyboard (the 5x12 matrix keyboard has no shift, so lowercase only; Enter / Backspace / Esc / Tab work). Kernels are fetched from kernels/ next to the page (a symlink to kernel/build/ in the repository: make -C web serve, then open /web/; real copies in the GitHub Pages build); otherwise pick the .bin with the file button. ?kernel=name (or a path with a /) overrides the default, ?autoload=0 skips the initial fetch. Source: github.com/ikeji/mtos (web/). SD card: pick a FAT32 image (web/tools/fatimg.py mkfs sd.img + add) or make an empty one; it mounts at /sd after the reboot. Writes are saved in this browser (IndexedDB) a couple of seconds after the OS stops writing and restored on the next visit; Download gets the current image as a file.