romanzolotarev.com is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
Mom is retiring. Says she wants to learn to program. #uxn here we come! All mainstream platforms suck!
First signs of life from my Socket device for Cucumber!
I wanted to keep things feeling the same as the existing devices, so Socket is more or less a clone of the File devices, minus some ports (like stat, delete, and append).
drew yesterday's wordmark in #uxn in ~350 bytes (40% savings over bitmap) by indexing into the 22 sprites it can be reduced to.
also used a "door" correctly for the first time while doing this (before ultimately removing it to save bytes ^^")
https://paste.sr.ht/~sporeball/c7e285c633a0d662b74bd60c27b0031bdafbb584
shorter string printing routine ^^ shaved 3 bytes @neauoire
@str/<print>/>loop ( str* x -- str* )
#18 DEO
INC2
( >> )
@str/<print> ( str* -- )
LDAk DUP ?/<print>/>loop POP
POP2 JMP2r
trick is to remove the immediate jump back, and reuse the lambda instead
though this means that some of the loop body goes before the routine address
but this is only a problem if you're falling through directly
Cucumber now supports ANSI character attributes for color, inversion, and bold!
https://github.com/TangentDelta/cardputer-uxn
#uxn #m5stack
heyo @neauoire, what's your opinion on stateful ports?
e.g. I want to connect to an address, I set the action port to connect mode by writing action/Connect, then I write in the address string until the null byte
I understand that this is opposed to the file device which does this by writing a pointer* to the filename in memory and then an operation on another port, is that the preferred way? (if so, why?)
ahahahahahahahaha okay I'm going to a music event on the morrow so I've been ambiently updating my hit accordion synth implemented in #uxn, accordion.fucker
and this thing is a fucking PROPER SYNTH now like hoooooly shit
existing features:
* modal
* interprets a computer keyboard as an accordion keyboard, cause they're the same fuckin shape
* customizable keyboard layouts
* monophonic melody mode
* tetraphonic melody mode
* stradella bass mode
* macro mode to record a bit played on stradella bass mode and loop it
* 8 different waveforms! (sine, square, saw, triangle, pulse, smw brass, smw jazz guitar, and accordion.fucker (noise but with a twist))
* full access to varvara's adsr functionality
* keypress highlights on a cool looking on-screen ui
* customizable presets!
but NOW we also have:
* arpeggiated stradella bass and macro modes!
* three provided presets in addition to the default
* on-screen note highlights to indicate where C is in melodic modes and where C and E are in stradella/macro modes
* actually good documentation!
* shiftable octaves in macro mode!
After 3 Daftpunk albums I've finally gotten circular frame buffers working in #uxn for the pebble without trig/luts!! Data for the corners of the screen that don't exist are no-longer being stored/calculated, so around 2kb of ram is saved!
The one sad thing is the core I had 80% finished is no longer needed as freeing the frame buffer gave me enough space to fit the usual uxn2 core :/
Updates will be pushed soon to both the Rebble and Repebble store with the new framebuffer driver for the chalk/gabbro platforms ^__^
@moses_izumi @OpenComputeDesign
#uxn would be a trip ;)
But yeah, the recommendation of Lua with something like Löve2D would probably be a great starting place.
I can now assemble Uxntal programs natively on Cucumber!
https://github.com/TangentDelta/cardputer-uxn
#uxn #m5stack
Hopefully srht gets back up shortly. But in the meantime, if you're looking for something from ~rabbits, I keep bleeding edge copies of near every source files:
https://wiki.xxiivv.com/etc/
#uxn
created a text-based wordle clone for #uxn called "rewold"
https://git.phial.org/d6/rewold
playable in any terminal, and hopefully on the cardputer soon thanks to @TangentDelta
I wrote a gopher web server in uxntal!
(disclaimer: run at your own risk, see below)
introducing… gopher-serv.tal :D
it's the bare minimum: no automatic directory listings, no error pages, and sandboxing is enforced by the emulator(!!)
but what it does have, is 201 bytes of gopher-serving goodness :D
src: https://codeberg.org/notchoc/gopher-serv.tal
emu: https://codeberg.org/notchoc/uxn2
run: uxn2 -N gopher-serv.rom ADDRESS
!!! DISCLAIMER: DO NOT EXPOSE THIS TO THE INTERNET !!! UXN2 DOES NOT HAVE SANDBOXING (YET) AND ALSO I DO NOT MAKE ANY GUARANTEES ABOUT SECURITY
took a small detour to implement a streaming encoder/decoder for ULZ for the #uxn ecosystem.
it's a small spec but as usual it took awhile to shake out the bugs (including building a test framework and generative tester).
implementing OOP inheritance in uxntal… has science gone too far?
(
@|Entity
base physical object
)
@entity/__def__
%Entity/pos% {
&pos/x* $2 &pos/y* $2
}
%Entity/vel% {
&vel/x* $2 &vel/y* $2
}
%Entity/def% {
Entity/pos%
Entity/vel%
}
%Entity/methods% {
|Entity/pos/get &pos/get
|Entity/vel/get &vel/get
}
|0
/def% &def/__size__
|10 &__size__
|/__def__
&pos/get ( <@>* -- x* y* )
LDA2k SWP2 INC2 INC2 LDA2 JMP2r
&vel/get ( <@>* -- xv* yv* )
INC2 INC2 LDA2k SWP2 INC2 INC2 LDA2 JMP2r
(
@|Critter
controllable entity
)
@critter/__def__
%Critter/def% {
Entity/def%
&buttons $1
&health $1
&state $1
&target $2
}
%Critter/methods% {
Entity/methods%
|Critter/buttons/get &buttons/get
|Critter/health/get &health/get
|Critter/state/get &state/get
|Critter/target/get &target/get
}
Entity/methods%
|0
/def% &def/__size__
|/__def__
&buttons/get ( <@>* -- buttons )
;/buttons ADD2 LDA JMP2r
&health/get ( <@>* -- health )
;/health ADD2 LDA JMP2r
&state/get ( <@>* -- state )
;/state ADD2 LDA JMP2r
&target/get ( <@>* -- target* )
;/target ADD2 LDA2 JMP2r
(
@|Player
kijetesantakalu
)
@player/__def__
%Player/def% {
Critter/def%
}
Critter/methods%
|0
/def%
|/__def__
@player/draw ( <@>* -- )
/pos/get #41 ;Entity/kijetesantakalu.icn !Screen/draw-sprite
the urge to built an fpga-based uxn implementation...
i scribbled up some notes and invented a supervisor mode extension, which should help with two things: 1. hiding implementation details (MMIO devices, filesystem) from user-mode ROMs, while still writing those drivers in #uxn code; 2. multi-tasking between uxn instances
Implemented mandelbrot based on the implementations on rosettacode thinking it might be a good way to benchmark #uxn on the m5, but it turned out almost too fast to be practical.
https://git.sr.ht/~rabbits/uxn-utils/tree/main/item/cli/exercises/mandelbrot.tal
y'all can try it here :D
https://codeberg.org/notchoc/kon/raw/branch/main/bin/kon.rom
please let me know if y'all have performance issues! it's kinda laggy on my decade-old laptop…
open-world^ scrolling sandbox! it's starting to feel like noita :D
^: 1024x1024 particles to be exact, but surely that should be big enough..?
P.S. the "worldgen" is actually taken from Worley.jpg! https://en.wikipedia.org/wiki/Worley_noise#/media/File:Worley.jpg
@durian nice! i wrote a similar #uxn program but one that forces you to use teal dice: https://git.phial.org/d6/weredice
@TangentDelta at Discord has UF #forth running on the #m5 cardputer using #uxn
@dpiponi @edwinb it's not exactly the same but for the last few years i've really enjoyed working within the #uxn ecosystem [1] for similar reasons.
a stack machine with 64k of memory is powerful enough to do interesting things but with real constraints. (it's also nice that it can easily run on modern hardware, game systems, web browsers, and even some "retro" systems)
finally got around to making my uxn contact card! thanks to @angelwood for the idea and inspiration ^^
source: https://codeberg.org/notchoc/card.tal
rom: https://codeberg.org/notchoc/card.tal/raw/branch/main/card.rom
hint: try running it and clicking anywhere :>
https://angelwood.xyz/blog/bcards-are-boring/
Every month of so I see someone new online has created there own #uxn card and It always feels so surreal that people are still interested in a idea i had almost 9~ months ago! (I must have seen atleast more then a dozen and half of them by now)
So I've finally dusted off the my old card and finally decided to update my old card to match the new aesthetic of my website ^__^
EDIT:
If you have your own and want to be added to the little collection on my blogpost dont be afraid to ask! (I have a bunch already downloaded but don't want to add them without express permission)
When i started writing #uxn I always thought only having 4 colours was going to be a serious limitation, but with a careful colour palette and some creativity I have always been just fine with only 4 colours.
Here is the celeste spritesheet in uxn form ^__^ (There is no easy way to extract assets from a Pico-8 game so I had to redraw them all)
callgraphs for… uxn??
digraph "hello.rom" {
"|0100 @top" -> "|0105";
"|0105" -> "|010b @λ0000";
"|010b @λ0000" -> "|010f";
"|010f" -> "|0103 @while";
"|0103 @while" -> "|0105";
"|0105" -> "|0108";
"|0108" -> "|010a";
}
EVERYTHING’S GOING TO BE OK
Implementing a tiny virtual machine, assembler, and compiler
The thesis of Tre O’Neal
https://digitalcommons.ncf.edu/cgi/viewcontent.cgi?article=7765&context=theses_etds
when i run gopher.rom on macos, i can't get any responses...
is that expected? seems some network issues.
i'm new to uxn. could you please help to debug it?
$ cd gopher.talother gopher browsers work ok, i mean non uxn.
$ git reflog
a9188d4 (HEAD -> main, origin/main, origin/HEAD) HEAD@{0}: clone: from https://codeberg.org/notchoc/gopher.tal.git
$ uxn2 drifblim.rom main.tal gopher.rom
$ uxn2 gopher.rom
gopher.floodgap.com
^C
$
now we can confirms all 8,000 bunnies can fit inside a single #uxn vm.
p.s. in the background, ps -o %cpu,rss runs in a loop
I've been working on a little something for the past few days, and it's finally usable :D
![media-1]
introducing…. gopher.tal!
https://codeberg.org/notchoc/gopher.tal
it's a lightweight (~3.2kb) gopher client that tries to be as unsurprising as possible
features:
would you be better off using w3m/bopher? probably
is this still a web browser written in assembly? hell yeah!