Uxn : un langage assembleur frugal

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
farvardin
Messages : 436
Inscription : 27 déc. 2014 16:07
Contact :

Uxn : un langage assembleur frugal

Message par farvardin »

Uxn est un écosystème applicatif complet, destiné au développement de petits outils et jeux, sous forme d'une machine virtuelle programmable dans un langage assembleur dédié (uxntal) et possédant seulement 32 instructions, sur le principe d'une machine forth, dont il garde d'ailleurs la syntaxe postpositionnée (postfix), la pile (stack) et la capacité de produire une solution à partir de composants simples et basiques.

Uxn peut être vu comme un processeur, et le reste des périphériques (audio, écran, clavier, souris) est géré par une machine idéale nommée Varvara, les deux systèmes cohabitants parfaitement.

Les logiciels écrits pour Uxn sont portables et destinés à des ordinateurs ayant peu de ressources, dans l'esprit du permacomputing. En effet, seul un compilateur C est nécessaire pour faire fonctionner le coeur CPU (en console). Pour l'accès aux périphériques, il existe des développements et portages vers diverses plate-formes, notamment en SDL2, ce qui lui permet de tourner sur de très nombreux OS (linux, macos, windows, haiku…). De plus il existe des versions spécifiques, citons par exemple la console Game Boy Advance, Nintendo DS, Playdate, DOS, Raspberry Pi Pico, Libretro, Web…

Y'a même un portage sur Amiga, mais il reste extrêmement lent... cf. https://mastodon.art/web/@mathr@post.lu ... 3340349649

N'espérez pas recréer des jeux en 3D ou le pare-feu d'OpenOffice avec ce système, car les spécifications sont assez frugales, avec notamment 64 ko de mémoire RAM. On retrouve un peu l'esprit de certaines consoles imaginaires (comme TIC-80).

Le développeur principal d'Uxn est Devine Lu Linvega, du couple Hundred Rabbits. Rekka Bellum illustre le site et les outils développés pour Uxn, et contribue donc grandement à l'imaginaire autour de cet écosystème.

Au niveau des outils disponibles développés pour Uxn, on retrouve notamment :

* 'calc', une calculatrice graphique et centrée sur l'hexadécimal.
* 'left', un éditeur de texte (pas utf-8 malheureusement, donc il n'est pas adapté à la prose francophone).
* 'nasu', un éditeur de sprites.
* 'noodle', un outil de dessin axé pixel-art.
* 'donsol', un jeu de cartes sous forme de roguelike.
* 'orca', un séquenceur midi assez incroyable, où les notes sont entrées dans une grille sous forme de code ascii.
* 'turye', un éditeur de polices de caractères (en pixel, ce n'est pas l'équivalent de fontforge non plus).
* 'dexe', un éditeur hexadécimal.
* 'piano', un petit synthé permettant d'être utilisé avec orca par exemple.
* 'turquoise', un langue de programmation graphique proche de la "turtue" du logo.
* 'nebu', un tableur / éditeur .csv en 6,2 ko!

Il faut garder à l'esprit que les binaires générés sont extrêmement compacts, par exemple le séquenceur orca ne fait que 11 ko dans la version Unx. Sa version console (pour terminal), écrite en C classique, prend un peu plus de 100 ko, tandis que la version pour Electron, qui a quasi les mêmes fonctionnalités, pèse plus de 400 Mo !

En conclusion, Uxn est un outil original, développé par des passionnés et conçu dans le but de sortir des paradigmes modernes de développement.
=> https://100r.co/site/uxn.html Site principal d'Uxn
=> https://wiki.xxiivv.com/site/varvara.html Présentation de Varvara
=> https://wiki.xxiivv.com/site/uxntal.html Le langage de programmation uxntal
=> https://github.com/hundredrabbits/awesome-uxn Tout sur Uxn
=> https://compudanzas.net/uxn_tutorial.html Un tutoriel sous forme de leçons sur 7 jours
__sam__
Messages : 7909
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Uxn : un langage assembleur frugal

Message par __sam__ »

C'est intéréssant. Je ne vois pas pourquoi la version Amiga est lente. L'execution du cpu virtuel me semble être faisable, même sur une machines 8 bits sans soucis.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre