Skip to content

Instantly share code, notes, and snippets.

@jonbro
Created November 11, 2022 16:12
Show Gist options
  • Save jonbro/f40861734e9c56a00b9643cdabc8b510 to your computer and use it in GitHub Desktop.
Save jonbro/f40861734e9c56a00b9643cdabc8b510 to your computer and use it in GitHub Desktop.

first some good stuff:

  • the implementation of uxnemu is great, really easy to lift the whole thing.
  • writing devices / drivers was incredibly clear! I got this done in a matter of minutes.

the stuff I struggled with a bit

  • from the documentation its unclear which operations pop from the stack. I think its assumed that all operations pop an element, and some write a single element back, but I wasn't sure, and just went and looked at the implementation to be sure.
  • the reference documentation could use some more examples. INC is great, but stuff like LDR or STA would be amazing if they included examples. I recognize this is more difficult because it requires showing not just the stack, but also program memory, but it feels doable?
  • the debugger in uxn32 is invaluable for a noob. I'd love to see some extentions to it though:
    • pause on start, so that you don't just break at your first overflow / underflow
    • state unwinding. The uxn memory footprint is so small that in a system with a larger memory footprint, storing deltas for the full ram / stacks wouldn't be too bad. Even in a constrained environment (e.g. rp2040 with ~250k ram) you could get a pretty big chunk of state deltas there.
  • its strange to me that the parser requires all ops to be upper case.
  • same with uppercase in # rune numbers
  • the documentation (both the reference and the cheatsheet) exclusively uses 0-9 in its hex literals. I wasn't sure what base they were in. Sprinkling in a few #FE #C0D3 would unconfuse this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment