Skip to main content

Search

Items tagged with: uxntal


So, @d6 made something neat. A #uxntal manual page, that contains the full opcode reference with all that's needed to program with it. It saves opening the browser to check the docs, it installs with uxn11.

usage: man uxntal

https://git.sr.ht/~rabbits/uxn11/commit/5a41189405de0865daa087aceced43b04258c1d6


Oh snap the Merveilles git forge has #uxntal syntax highlight.


long shot, but has anybody managed to compile #orca on the playdate? the repo mentions linux env instructions and I totally got stuck on windows.
#uxn #uxntal


Still working my way through day 3 of the compudanzas #uxntal tutorial: now drawing on the screen via keyboard input, which is really satisfying.

I kind of took a detour to improve my tools (ebook reading experience in emacs), but now I'm back to hacking. I think I might have enough knowledge to try to build a tiny text editor of some kind?


I did another uxn-related article: a shallow embedding of Uxntal in Raku.

https://wimvanderbauwhede.codeberg.page/articles/stack-based-programming-in-raku/

#uxntal #rakulang


Hi Uxn folks,

I created a simple memory management unit for the Uxn VM.
It provides support for dynamic memory allocation (malloc/free style), and it's done using a virtual memory approach so to access the allocated memory LDA/STA works.

If anyone's interested, I will explain more. There's a README and a rough draft of a DESIGN doc (linked from the README).

https://codeberg.org/wimvanderbauwhede/uxn-mmu

#Uxn #Varvara #Uxntal


Hi Uxn folks,

I created a concurrent version of the Uxn VM. It breaks up long-running tasks in chunks, the purpose is to improve responsiveness, in particular of audio. You need to add some code to your .tal to make use of it.

If anyone's interested, I will explain more.

Haven't had time to write up how it works, the current README is just the default Uxn one.

https://codeberg.org/wimvanderbauwhede/concurrent-uxn

#Uxn #Varvara #Uxntal


Implemented something like lambdas(fancy word to mean inline anonymous functions) in #Uxntal, it makes some types of code a bit more readable. Here's a little snippet that applies the body of a lambda to each pixels of a 256x256 texture. The body of the lambda is Viznut's code from the Permacomputing paper in the latest Computing Within Limits workshop.


Action at a distance is an anti-pattern in computer science in which behavior in one part of a program modifies operations in another part of the program. I will try to demonstrate how it can be a powerful ally when writing #uxntal if wielded safely.

https://wiki.xxiivv.com/site/uxntal_state.html


Implementing structural editing in #uxntal. I remember having lots of fun with THINK Pascal when the IDE was reformatting my program automatically and I've been meaning to have this as part of my workflow now.


For speed-critical loops in #uxntal, consider this pattern:

Use the return-stack to juggle the items needed inside the loop, and if you know how many times the loop needs to run, flatten your boundaries to a single byte(so 0..0x10, becomes 0xf0).


aaah, then yes, nothing to worry about there then.

I'm not sure if you've seen @bellinitte's padding mod to #uxntal (https://merveilles.town/@bellinitte/110141437531968122) but you miiight be able to make use of this somehow.


Made a little companion REPL to Left, select a bit of code and press ctrl+p to have it assembled and evaluated in the Bicycle window. It's a good way to learn how #uxntal translates to bytes, and vice-versa.

https://git.sr.ht/~rabbits/bicycle#run


Understanding enums in #uxntal. Or, the recurring "why is the device page overlapping the zero-page" question.

https://llllllll.co/t/uxn-virtual-computer/46103/398


Added a few notes to the #uxntal page on how to quote/unquote opcodes and functions. "Quoting" here means to defer an operation, as in in, evaluating it later. It's doubles as a little introduction to Uxn's self-modification patterns.
http://wiki.xxiivv.com/site/uxntal_immediate.html
:uxn:


Every few months I rewrite the #uxntal assembler, and each time I find new and better ways to do certain things.
The whole assembler is now 1752 bytes, or 433 lines of #uxntal.
https://git.sr.ht/~rabbits/drifblim/tree/main/item/src/drifblim.tal


I've been working on implementing callable words in #uxntal.

Instead of the typical PUSH->POP->JSR sequence each time you want to run a routine, these tokens are not pushing to the stack - they'll run immediately.

They'll be impractical for doing pointer arithmetic, but save 1 byte for every subroutine call, and will save millions of cycles in a project of the size of a text editor or drawing software.

They don't break compatibility with old roms, and make source files a bit more readable.


I wrote a short blog post on immutable datastructures in #RakuLang. It's what I used for my #Uxntal to C compiler.
https://wimvanderbauwhede.codeberg.page/articles/immutable-datastructures-reduction/


There is a subset of #uxntal that is perfectly reversible and that does not generate any loss in entropy, meaning that a step debugger could step backward in time without any loss of information.

I implemented a stack-effect checker last week and I think I might be able to detects linear routines too. Jumping around, self-modification, load/store opcodes will need to stash the entropy loss in a 3rd stack which will allow reversion of non-linear operations.

https://web.archive.org/web/20171104231932/http://home.pipeline.com/~hbaker1/ForthStack.html


Forth is madness ^__^
I say that with respect and fear. X'-D

If you like Forth, you gotta check out #uxn / #uxntal, if you haven't done so already.

Just imagine a vm assembler based on the ideas and values of Forth, implemented in very simple (~2k SLOC) C & SDL


my first time printmaking. little holiday workshop at the local art center #uxn #uxntal


#Uxn folks, I wrote a spec for Funktal, a functional language I'm working on intended to compile to #Uxntal.
Before I go deep down the rabbit hole, I'd value your views on this.

https://codeberg.org/wimvanderbauwhede/funktal/src/branch/main/SPEC.md


So, Yeti on the #uxntal mailing list discovered a genius way to print inline strings(as opposed to passing a reference to that piece of text), and @tty rewrote it to be this super lean 10 bytes long implementation.

I've added it to this collection of routines: https://wiki.xxiivv.com/site/uxntal_library.html#strings


A question that keeps coming back is how to apply a struct to a database in #uxntal.

Here's the little example I will be using in the upcoming docs 😀

Lo, thar be cookies on this site to keep track of your login. By clicking 'okay', you are CONSENTING to this.