Rek & Devine



Go slow and fix things


Last active 9 hours ago


Last active 21 days ago


Last active 2 months ago


Last active 2 years ago
View more

Recent activity

FILL/CPYR System/expansion commands 2 months ago

From Hundred Rabbits to ~rabbits/uxn

Hey everyone,

After a bit of conversation on the topic, I've decided to add two new 
basic memory operations to the System/expansion port. The first one has 
been requested many times:

- FILL: 0x00 Fill a length of memory with a value, starting at address.
- CPYL: 0x01 Unchanged, Copy memory starting by the first byte.
- CPYR: 0x02 Copy memory starting by the last byte.

The documentation has been updated to reflect the change:

I've written a basic example that demonstrates and test the commands:

Re: [BUG uxn] #010e DEO stack printing broken. 2 months ago

From Hundred Rabbits to ~rabbits/public-inbox

Hi Snufkin 🙂

Thanks for spotting this one!
Pushed a fix to uxnemu and uxn11.


On 2024-03-03 23:21, Ismael VC wrote:
> Dear Uxners,
> The stack printing routine seems to be broken when the stack pointer
> wraps around back to -1 from starting position.
> Minimal example:

Standard debug output format on #010e DEO 2 months ago

From Hundred Rabbits to ~rabbits/uxn


A few people have been implementing emulators this week, and they've 
suggested a standard output format for the 01 value to the debug port, 
so they can test their implementation against that output.

I had a different format going for the uxnrepl, uxn5, uxn11, and uxnemu. 
I've started standardizing them to the following format:

Sending a non-null byte to the System/debug port will print the content 
of the stacks or pause the evaluation if the emulator includes a 
step-debugger. The recommended output for the #01 debug value, with a 
working stack containing 3 items, is as follow:

Re: Label Inheritance 2 months ago

From Hundred Rabbits to ~rabbits/uxn

Thanks everyone for the feedback, I'm glad you liked the idea, it is now 
merged and documented:


I've also written a new example file in a kind of pseudo Objective-Uxn 
style, where the state of an entire object is done through accessors and 
the local state is modified only by its own methods. I ported the timer 
example for a smalltalk-80 examples folder:


This makes use of a new thing, which has been discussed before but never 
implemented, being able to call local subroutines without having to type

Label Inheritance 2 months ago

From Hundred Rabbits to ~rabbits/uxn

Hello everyone :)

Long time no talk, lots has happened since my last email, I'll try to 
make a catch up email soon. This is about an email I got this morning 
with a question that I don't know how to answer. Here's the question, 
should ,&y LDR be able to access object/y:


&pos &x $1 &y $1

&get-x ( -- x )
     ,&x LDR

Re: DAMPE emulator extension 3 months ago

From Hundred Rabbits to ~rabbits/uxn

Hi Kiëd,

Development extensions should remain emulator-centric I think, I like 
the idea of expanding what the debug port can do tho, so if we can agree 
which format we want it in, I could add some details on this in the docs 
🙂 Normally, once an application is stable enough, I remove all the 
calls to the debug port before shipping the rom, so I never considered 
that specific one too important to exist across all emulators.

What you use the debug port for, should really be in the /expansion 
port, especially since it creates unpredictable stack depths and doesn't 
follow the opcode's arity. This will allow you to pass an address to a 
memory-safety program stored in memory. That would be the way to go I 
think 🙂

Re: Small suggested change to File/stat port 4 months ago

From Hundred Rabbits to ~rabbits/uxn

I went ahead and implement the change to the stat port last month. Not 
only does it allow to poll only the 4 bytes of the string representation 
of the file, but you can poll a single one as well, so if you stat a 
file with a length of one, you would get '-' for a folder, for example, 
limiting the need for excessive buffer size.

While implementing that change, it gave me an idea. I was thinking, it 
would be quite trivial to make it so a length of 8, would give us the 
32-bit int length of a file:


This would allow Uxn to know the file length of files larger than a 
short, if the file size is larger than the length, then you get a bunch

Re: [BUG] controller directions sticking when using D-pad 4 months ago

From Hundred Rabbits to ~rabbits/uxn

I'll borrow a controller that I can replicate this issue with and try to 
fix it :) Thanks for the report!


Re: [PATCH] Fix macOS builds 4 months ago

From Hundred Rabbits to ~rabbits/public-inbox

Thanks for the patch :) Merged.

On 2024-01-01 19:23, Jason Morley wrote:
> This patch is for porporo. Sorry I forgot to add it in; still getting used to the workflow.

Re: [PATCH uxn v2] (uxnasm.c) Add check for missing output file 6 months ago

From Hundred Rabbits to ~rabbits/public-inbox

Thanks :)

On 11/3/23, Capital <xcapt98@gmail.com> wrote:
> ---
>  src/uxnasm.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> diff --git a/src/uxnasm.c b/src/uxnasm.c
> index f80d63b..441dc07 100644
> --- a/src/uxnasm.c
> +++ b/src/uxnasm.c
> @@ -498,10 +498,10 @@ int
>  main(int argc, char *argv[])
>  {