Skip to main content


got my little virtual CPU to a baseline state of having instructions that can be assembled from text and executed. now we get to the interesting parts... #theFurnace
in reply to jakintosh

some of the main inquiries this project is exploring threaded below:
in reply to jakintosh

1. is it interesting to have access to a third stack on a stack machine? what about if instead of a third stack, it was a queue? does this open interesting new doors for elegant assembly code, or is it just unnecessary hardware/instruction complexity that could just be some functions instead?
in reply to jakintosh

2. what if we used unused machine code bytes for assembly syntax? is it possible to build an instruction set that also makes room for assembly niceties, removing the need for a separate "textual" assembly? so that you could share executable binaries that also allow for editing without loss of "programmer" context (and thus, removing the size overhead of a text encoding)?
in reply to jakintosh

you could keep two opcodes to open and close self-documentation blocks maybe
in reply to Devine Lu Linvega

@neauoire honestly, I have a *ton* of unused opcodes so there should be plenty of room to try lots of cool little things like this. I think I ended up with ~180/256 utilized, it definitely really made me appreciate the elegance in uxn’s design, especially when it came to looking for an optimal layout for decoding the instructions… 😅
in reply to jakintosh

I've been working on expanding my assembly language, both in terms of design and also implementation. The language borrows from forth, but splits between callable routines and somewhat powerful macros that allow label parameters for hopefully very readable but very reusable code segments.

It is almost completely assembling, but I'm working to unravel the mess of text and semantic parsing... #theFurnace
in reply to Devine Lu Linvega

@neauoire the working title has been “co” since that’s the prefix of the names of every component of the larger systems, and this is the lowest level unit. not sure if it will stick around, but that’s what i refer to it as for now 😅
in reply to jakintosh

While implementing the final pass of this assembler, I realized that what I have so far is sort of a "higher order" assembly language, only capable of defining routine and macro symbols. It wouldn't be much additional work at all to get this to the point where it could output an actual executable memory layout, but I guess this is what happens when you try to create an assembly language without having spent much time writing assembly beforehand...
in reply to jakintosh

Been super busy lately, but still chipping away at this little language in bits and pieces. Decided to jump the gun a little bit and add support for namespaces and imports now, since sharing code and resolving names/hashes will be a huge component of its utility. Starting to get pretty excited about how this will all come together... #theFurnace

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