Drifblim is a Uxntal assembler, written in Uxntal.
The assembler is written in Uxntal itself, and is designed to help bootstrap the Uxn ecosystem. Drifblim exports a symbols file that can be used with debuggers. The goal is for Driflim's source code to be released as a print-friendly document, along with its assembled hexadecimal data and the napkin definition of the virtual machine.
Drifblim Standard
This styleguide specifies a restricted Uxntal target aimed at compatibility with most assemblers. To validate your own assembler, see the tests.
- Limit of 48 bytes per token.
- Limit of 48 bytes per sublabel(scope+token).
- Maximum nesting depth of 255 for lambdas.
- No nested comments
- Only one include per file, must be last token of file.
- No macros.
Beyond features support, Drifblim expects the standard notation:
- Routines are indicated in the
( a b -- c )
style. - Vectors are indicated with the
( -> )
spacer. - Routine definitions using shorts use asterix, like
( a* -- b* )
. - Source is indented with tabulators.
- Device labels are capitalized.
Drifblim is strong enough to lift Pokemon or people but has no control over its flight. This causes it to drift with the wind and end up anywhere.
drifblim.tal
Since the assembler is written in the language it is assembling, you have two choices, download a pre-assembled drifblim.rom(2kb), or assemble it with uxnasm.c.
drifblim.rom
This is the hexadecimal data of the drifblim assembler above, I am keeping a copy of it here just in case.
incoming symbols oscean uxntal devlog