{"slug": "m-pc-a-concatenative-os", "title": "M/PC – A Concatenative OS", "summary": "M/PC, a concatenative operating system for the Varvara computer, has been released, inspired by Openfirmware and designed to manage files without a file browser. The OS uses postfix notation and can be navigated with a keyboard or controller, supporting file operations, screen drawing, and ROM execution. It aims to provide a minimal, keyboard-driven interface for file management and application launching.", "body_md": "## •/PC\n\nM/PC is a [concatenative](concatenative.html) operating system for [Varvara](varvara.html), inspired by [Openfirmware](https://en.wikipedia.org/wiki/Open_Firmware), designed to manage files on system without a file browser. It uses the postfix notation, meaning that the function success their operands:\n\n```\n( Get the number of bytes in folder/file_name )\nfolder/ file_name cat len dec\n```\n\nFiles can store reusable sequences of commands, the tilde prefix includes the content of the file:\n\n```\n( Content of ./show-slide )\nslide_ swp cat 3cx22.icn cat 1 icn\n1 ~show-slide\n```\n\nThe interface uses a single prompt at the top of the screen to input commands:\n\n### Controls\n\nThe operating system can be used largely without a keyboard to navigate folders and launch roms:\n\n`left/right` Navigate Stack`up/down` Scroll Stack`A` Evaluate Selected Symbol`B` Directory/Back\n\n### Kiosk\n\nTo start M/PC as a BIOS rom so that when the user presses `F4`, Varvara returns to the BIOS instead of triggering a reboot, launch with arguments:\n\n```\nuxnemu m_pc.rom orca.rom run\n```\n\n### Wallpaper\n\nOn boot, M/PC will try and draw an [ICN file](icn_format.html) named wallpaperWWxHH.icn, where `WW` is the width of the screen divided by 8 in hexadecimal, and `HH` the height.\n\n### Reference\n\nHere is the list of all primitives:\n\n```\ndir ( -- [f] )\n\tPut the file names in the current location on the stack.\nmov ( path -- [f] )\n\tMove the current location to current/path, then do dir.\n\nnow ( -- date time )\n\tPuts the date Tue, 23 Jun 2026, and time 11:48:45 on the stack.\n\nrun ( f.rom -- ok )\n\tRun the rom file, return with F4.\nicn ( f.icn blend -- ok )\n\tDraw an icn file with blend.\ntxt ( f.txt line -- ok )\n\tRead a text file starting at line.\n\nlen ( f -- hex )\n\tPut the length of a file in hexadecimal.\nput ( body f -- ok )\n\tCreate a file with the content of body.\nget ( f -- body )\n\tPut the content of a file on the stack.\ncpy ( fsrc fdst -- ok )\n\tCopy the content of fsrc into fdst.\nera ( f -- ok )\n\tErase file.\nren ( fsrc fdst -- ok )\n\tRename file fsrc into fdst.\n\npop ( a -- )\n\tPop symbol at the top of the stack.\ndup ( a -- a a )\n\tDuplication symbol at the top of the stack.\novr ( a b -- a b a )\n\tCopy second symbol to the top of the stack.\nswp ( a b -- b a )\n\tPull the second symbol to top.\nrot ( a b c -- b c a )\n\tPull the third symbol to top.\n\nadd ( a b -- a+b )\n\tPush the sum of two symbols.\nsub ( a b -- a-b )\n\tPush the difference of two symbols.\ndec ( hex -- dec )\n\tConvert hexadecimal number to decimal.\nhex ( dec -- hex )\n\tConvert decimal number to hexadecimal.\ncat ( a b -- ab )\n\tConcatenate two symbols.\n\ncmp ( a b -- bool )\n\tCompare the names of two symbols.\nand ( a b -- bool )\n\tPut true if both symbols are true.\nora ( a b -- bool )\n\tPut true if either symbol is true.\n\nrsz ( width height -- )\n\tResize the screen, puts true if resize is supported by Screen.\nout ( a -- )\n\tOutput symbol to Console/write.\nbye ( -- )\n\tQuit.\n```\n\n[Source](../etc/m_pc.tal.txt), Latest[Repository](https://git.sr.ht/~rabbits/m_pc)**Support:**[Manifest](manifest.html)[Theme](theme.html)[Snarf](snarf.html)\n\n**incoming: **[2026](2026.html)", "url": "https://wpnews.pro/news/m-pc-a-concatenative-os", "canonical_source": "https://wiki.xxiivv.com/site/m_pc.html", "published_at": "2026-07-06 20:08:46+00:00", "updated_at": "2026-07-07 02:43:55.699519+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools"], "entities": ["Varvara", "Openfirmware", "M/PC", "uxnemu", "ICN"], "alternates": {"html": "https://wpnews.pro/news/m-pc-a-concatenative-os", "markdown": "https://wpnews.pro/news/m-pc-a-concatenative-os.md", "text": "https://wpnews.pro/news/m-pc-a-concatenative-os.txt", "jsonld": "https://wpnews.pro/news/m-pc-a-concatenative-os.jsonld"}}