commit 8b1664f884fc1019a9fccf29363a1c5dcfad500e
parent aaacb77e325078f68e0007459c3e8b834818436f
Author: neau <neau@web>
Date: Wed, 22 Jun 2022 16:33:20 +0200
empty web commit
Diffstat:
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/Uxn.mdwn b/Uxn.mdwn
@@ -1,11 +1,23 @@
# Uxn
-**Uxn** is a simple [[virtual machine]] platform geared towards graphical
+**Uxn** is a simple [[virtual machine]] geared towards graphical
applications, with features reminiscent of classic home computers.
-Unlike most "fantasy platforms" such as [[TIC-80]], Uxn was designed with an implementation-first mindset with a focus on creating portable and long-lasting tools and games.
+Unlike most "fantasy platforms" such as [[TIC-80]], Uxn was designed with an implementation-first mindset with a focus on creating portable tools and games for pre-existing devices(emulators exist even for devices such as the Gameboy Advance).
-Emulators exist even for devices such as the Gameboy Advance. The [[C]] implementation of the virtual machine is about 100 lines. A self-hosted assembler for the Uxntal assembly language is about 400 lines of Uxntal, and assembles to a 1200 bytes rom.
+The [[C]] implementation of the virtual machine is about 100 lines. A self-hosted assembler for the Uxntal assembly language is about 400 lines of Uxntal, and assembles to a 1200 bytes rom.
+
+This stack-machine has no registers - Program Counter(PC), Memory(M), Devices(D) and Return Stack(rs). Uxn has 32 opcodes:
+
+ 80 a b c M[PC+1] 08 a b?c 10 a b M[c8] 18 a b+c
+ 01 a b c+1 09 a b!c 11 a {M[c8]=b} 19 a b-c
+ 02 a b 0a a b>c 12 a b M[PC+c8] 1a a b*c
+ 03 a c 0b a b<c 13 a {M[PC+c8]=b} 1b a b/c
+ 04 a c b 0c a b {PC+=c} 14 a b M[c16] 1c a b&c
+ 05 b c a 0d a {(b8)PC+=c} 15 a {M[c16]=b} 1d a b|c
+ 06 a b c c 0e a b {rs.PC PC+=c} 16 a b D[c8] 1e a b^c
+ 07 a b c b 0f a b {rs.c} 17 a {D[c8]=b} 1f a b>>c8l<<c8h
+ 2x a16 b16+c16 4x a b c {rs.b+rs.c} 8x a b c b+c
Relationship to permacomputing:
@@ -13,6 +25,8 @@ Relationship to permacomputing:
* The design characteristics call for small applications that use little computing power.
* The general issues with [[virtual machine]]s apply: running a virtualized program takes much more processing power than an equivalent native program would. It is therefore advisable to use VMs only for computationally simple applications.
+Parts of the project are geared toward the specification of a [[Universal Virtual Computer]], such as the Uxn sign language, and its glyph writing system.
+
See also:
* [Uxn at 100r.co](https://100r.co/site/uxn.html)