
Uxn is a virtual stack-machine.

This one-page computer is capable of hosting, programmable in Uxntal, was designed with an implementation-first mindset and a focus on creating portable graphical tools and games.
This wiki and most of the audio-visual works documented on it were created with Uxn-powered tools.
Memory
Uxn utilizes two stacks, allowing it to tunnel through 127 subroutines and find its way back. It can interface with up to 16 devices at once; devices are peripherals such as screens, controllers, or even other Uxns. Each instance has its own stack and device memory, but share a common 64kb of memory with the others.
Shared | Memory | RAM | Data | 64kb |
---|---|---|---|---|
Private | Stacks | Working Stack | Data | 255 bytes |
Pointer | 1 byte | |||
Return Stack | Data | 255 bytes | ||
Pointer | 1 byte | |||
IO | Devices | Data | 256 bytes |
Design
Because Uxn was explicitly created to be hosted on pre-existing hardware, the design was advised primarily by relative software complexity; generating novel electronics being at odds with the project. Features were weighted against the difficulty they would add to programmers implementing their own emulators.
Stack-machines are ideal candidates for this scale of personal computing as one can comfortably write programs directly in assembly to tackle most computation projects without having to rely on higher-level languages.

With only 64kb of memory, it will never run Chrome, TensorFlow or a blockchain. It sucks at doing most modern computing activities. It's more about finding novel things that can be made in such a restricted system.
While this project aspires to act as a target that may last, it is in its infancy, the design could still change and break compatibility.
The VM can be implemented in about 100 lines of C, it lives at the core of the Varvara computer. Uxn is to Varvara, what the 6502 is to the Classic Nintendo.
Original illustrations created by Rekka Bellum.



15B13
— Uxn is born!
Incoming: dexe tools markl assembly forth ufx format varvara drifblim drifblim macintosh playdate devlog uxn devlog hundred rabbits