cd /news/developer-tools/m-pc-a-concatenative-os · home topics developer-tools article
[ARTICLE · art-48812] src=wiki.xxiivv.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

M/PC – A Concatenative OS

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.

read3 min views1 publishedJul 6, 2026
M/PC – A Concatenative OS
Image: source

•/PC #

M/PC is a concatenative operating system for Varvara, inspired by Openfirmware, designed to manage files on system without a file browser. It uses the postfix notation, meaning that the function success their operands:

( Get the number of bytes in folder/file_name )
folder/ file_name cat len dec

Files can store reusable sequences of commands, the tilde prefix includes the content of the file:

( Content of ./show-slide )
slide_ swp cat 3cx22.icn cat 1 icn
1 ~show-slide

The interface uses a single prompt at the top of the screen to input commands:

Controls

The operating system can be used largely without a keyboard to navigate folders and launch roms:

left/right Navigate Stackup/down Scroll StackA Evaluate Selected SymbolB Directory/Back

Kiosk

To 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:

uxnemu m_pc.rom orca.rom run

Wallpaper

On boot, M/PC will try and draw an ICN file named wallpaperWWxHH.icn, where WW is the width of the screen divided by 8 in hexadecimal, and HH the height.

Reference

Here is the list of all primitives:

dir ( -- [f] )
	Put the file names in the current location on the stack.
mov ( path -- [f] )
	Move the current location to current/path, then do dir.

now ( -- date time )
	Puts the date Tue, 23 Jun 2026, and time 11:48:45 on the stack.

run ( f.rom -- ok )
	Run the rom file, return with F4.
icn ( f.icn blend -- ok )
	Draw an icn file with blend.
txt ( f.txt line -- ok )
	Read a text file starting at line.

len ( f -- hex )
	Put the length of a file in hexadecimal.
put ( body f -- ok )
	Create a file with the content of body.
get ( f -- body )
	Put the content of a file on the stack.
cpy ( fsrc fdst -- ok )
	Copy the content of fsrc into fdst.
era ( f -- ok )
	Erase file.
ren ( fsrc fdst -- ok )
	Rename file fsrc into fdst.

pop ( a -- )
	Pop symbol at the top of the stack.
dup ( a -- a a )
	Duplication symbol at the top of the stack.
ovr ( a b -- a b a )
	Copy second symbol to the top of the stack.
swp ( a b -- b a )
	Pull the second symbol to top.
rot ( a b c -- b c a )
	Pull the third symbol to top.

add ( a b -- a+b )
	Push the sum of two symbols.
sub ( a b -- a-b )
	Push the difference of two symbols.
dec ( hex -- dec )
	Convert hexadecimal number to decimal.
hex ( dec -- hex )
	Convert decimal number to hexadecimal.
cat ( a b -- ab )
	Concatenate two symbols.

cmp ( a b -- bool )
	Compare the names of two symbols.
and ( a b -- bool )
	Put true if both symbols are true.
ora ( a b -- bool )
	Put true if either symbol is true.

rsz ( width height -- )
	Resize the screen, puts true if resize is supported by Screen.
out ( a -- )
	Output symbol to Console/write.
bye ( -- )
	Quit.

Source, LatestRepositorySupport:ManifestThemeSnarf

**incoming: **2026

── more in #developer-tools 4 stories · sorted by recency
── more on @varvara 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/m-pc-a-concatenative…] indexed:0 read:3min 2026-07-06 ·