57 lines
2.4 KiB
Plaintext
57 lines
2.4 KiB
Plaintext
# intro to uxn programming workshop
|
|
|
|
online workshop to learn the basics of {uxn} programming
|
|
|
|
# upcoming
|
|
|
|
=> https://withfriends.co/event/13004513/babycastles_academy_intro_to_uxn_programming Babycastles Academy: Intro to Uxn Programming
|
|
sunday, november 21, 12021, at 3pm UTC-5 (EST)
|
|
|
|
# description
|
|
|
|
Have you wondered how computers function under layers of abstraction? Are you curious about learning about assembly languages? Would you like to try fun challenges, while getting to know a permacomputing platform? Join us in learning about Uxn!
|
|
|
|
Uxn is a portable 8-bit virtual computer inspired by forth-machines, capable of running simple tools and games, and programmable in its own unique assembly language called Uxntal.
|
|
|
|
Uxn is at the core of Varvara computer, a platform for running small audio/visual applications. Varvara has been ported already to several years old and modern computing platforms, like the Gameboy Advance, Nintendo DS, the Playdate, and more.
|
|
|
|
In this workshop we'll introduce the basic concepts to start programming this computer: its architecture, the programming paradigms of Uxntal, and some low-level aspects that will allow us to create a simple drawing tool!
|
|
|
|
Pre-requisites: This workshop is best for those with some previous programming experience. However, no previous experience with assembly or low-level computing is needed.
|
|
|
|
We will use the learn-uxn website by metasyn, that requires a web browser with javascript enabled:
|
|
=> https://metasyn.github.io/learn-uxn learn-uxn
|
|
|
|
# outline
|
|
|
|
* what is uxn, varvara, uxntal?
|
|
* varvara computer architecture
|
|
* the stack and postfix notation
|
|
* setting system colors
|
|
* labels
|
|
* drawing a pixel
|
|
* designing a sprite
|
|
* drawing a sprite
|
|
* draw loop: on-screen vector
|
|
* reading the mouse
|
|
* a small conditional example
|
|
|
|
# resources
|
|
|
|
=> ./uxn_tutorial.gmi {uxn tutorial}
|
|
=> ./hexadecimal.gmi {hexadecimal}
|
|
|
|
## external
|
|
|
|
=> https://metasyn.github.io/learn-uxn/ learn-uxn by metasyn
|
|
=> https://wiki.xxiivv.com/site/uxn.html uxn technical documentation
|
|
=> https://wiki.xxiivv.com/site/uxntal_reference.html the uxntal opcode manual
|
|
=> https://wiki.xxiivv.com/site/uxntal_cheatsheet.html uxntal cheatsheet
|
|
=> https://git.sr.ht/~rabbits/uxn uxn repository
|
|
=> https://llllllll.co/t/uxn-virtual-computer/ llllllll forum
|
|
=> https://github.com/hundredrabbits/awesome-uxn awesome uxn: awesome things from the community
|
|
|
|
irc channel: #uxn on irc.esper.net
|
|
|
|
=> https://100r.co/site/nasu.html nasu spritesheet editor
|